clearing the map now saves the track (2) -> does this using AsyncTask

This commit is contained in:
y20k 2016-09-27 17:02:23 +02:00
parent e3793de0cc
commit 046228702a

View file

@ -26,6 +26,7 @@ import android.database.ContentObserver;
import android.location.Location; import android.location.Location;
import android.location.LocationListener; import android.location.LocationListener;
import android.location.LocationManager; import android.location.LocationManager;
import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
@ -393,13 +394,8 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
} }
// save track object // save track object
StorageHelper storageHelper = new StorageHelper(mActivity); SaveTrackAsyncHelper saveTrackAsyncHelper = new SaveTrackAsyncHelper();
storageHelper.saveTrack(mTrack); saveTrackAsyncHelper.execute();
// clear track object
mTrack = null;
} }
@ -555,9 +551,9 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
/** /**
* Inner class: SettingsContentObserver is a custom ContentObserver for changes in Android Settings * Inner class: SettingsContentObserver is a custom ContentObserver for changes in Android Settings
*/ */
public class SettingsContentObserver extends ContentObserver { private class SettingsContentObserver extends ContentObserver {
public SettingsContentObserver(Handler handler) { SettingsContentObserver(Handler handler) {
super(handler); super(handler);
} }
@ -590,4 +586,28 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
} }
/**
* Inner class: Saves track to external storage using an AsyncTask
*/
private class SaveTrackAsyncHelper extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
LogHelper.v(LOG_TAG, "Saving track object in background.");
// save track object
StorageHelper storageHelper = new StorageHelper(mActivity);
storageHelper.saveTrack(mTrack);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
// clear track object
LogHelper.v(LOG_TAG, "Clearing track object after background save operation.");
mTrack = null;
}
}
} }