Я разрабатываю приложение, которое слушает позиции gps на стороне износа и записывает их в файл. Как я хочу, чтобы сохранить эти файлы синхронизированные на карманном стороне, в настоящее время я добавляю позиции в виде datamap, как они приобретены:Синхронизация DataAPI
private void addLocationEntry(double latitude, double longitude, float accuracy, long gpsTime, float speed, double altitude, long time){
String PATH = "/GPSdata";
if(!googleClient.isConnected()){
return;
}
String dataString = gpsTime + "\t" + time + "\t" + latitude + "\t" + longitude + "\t" + speed +
"\t" + distance + "\t" + accuracy + "\t" + altitude + "\n";
String name = new SimpleDateFormat("HH'h'mm'm'ss's'_dd-MM-yyyy").format(initialTime);
//make datamap and send it (GPSdata file)
DataMap dataMap = new DataMap();
dataMap.putLong(KEY_INITIALTIME, initialTime);
dataMap.putString(GPSinfo, dataString);
new SendToDataLayerThread(GPSdata + "/" + time, dataMap).start();
}
class SendToDataLayerThread extends Thread {
String path;
DataMap dataMap;
// Constructor for sending data objects to the data layer
SendToDataLayerThread(String p, DataMap data) {
path = p;
dataMap = data;
}
public void run() {
// Construct a DataRequest and send over the data layer
PutDataMapRequest putDMR = PutDataMapRequest.create(path);
putDMR.getDataMap().putAll(dataMap);
PutDataRequest request = putDMR.asPutDataRequest();
DataApi.DataItemResult result = Wearable.DataApi.putDataItem(googleClient, request).await();
if (!result.getStatus().isSuccess()){
run();
}
}
}
Дело в том, что пользователь, в конце деятельности, может скажем, что данные, собранные до тех пор, не должны храниться в файлах ... Поэтому я хочу удалить все отправленные данные, чтобы на карманной стороне их не получать.
В этот момент Я отправляю datamap за каждый раз, когда он создается, а это значит, что в конце, если пользователь не хочет хранить данные, все данные уже отправлены ...
Есть ли способ отменить созданные данные или отправить их в конце приложения (без чрезмерного уничтожения памяти)?
Лучшим способом было планирование синхронизации, но, поскольку это невозможно, и теоретически это не принесло бы никакого прироста памяти, я сделаю это самостоятельно и протестирую потребление памяти. Если он слишком велик, я просто отправлю сообщение на карманную сторону, если пользователь захочет удалить файлы и удалить их на карманной стороне после их создания. – cdlc