В событии onLocationChanged я хочу сохранить свой маршрут GPS (широта, долгота). Позже я хочу загрузить эти данные и нарисовать маршрут .
Кто является лучшим способом сделать это, используя некоторый тип массива (и сохранить или загрузить с помощью базы данных) или файлы XML или что-то еще?
Спасибо.
Используйте общие настройки и редактор.
Ознакомьтесь с этим открытым исходным кодом, возможно, он вам очень поможет: OsmandSettings.java
Я объясню важные части кода:
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
// These settings are stored in SharedPreferences, replace com.osmand.settings
// with your own package name, or whatever String you want.
public static final String SHARED_PREFERENCES_NAME = "com.osmand.settings";
public static final String LATITUDE = "latitude";
public static final String LONGITUDE = "longitude";
Для записи в SharedPreferences:
public void onLocationChanged(Location location){
SharedPreferences prefs = Context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_WORLD_READABLE);
Editor editor = prefs.edit();
//Save it as a float since SharedPreferences can't deal with doubles
edit.putFloat(LATITUDE, (float) Location.getLatitude());
edit.putFloat(LONGITUDE, (float) Location.getLongitude());
edit.commit();
}
Для чтения из SharedPreferences:
public void onLocationChanged(Location location){
SharedPreferences prefs = Context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_WORLD_READABLE);
double lat = (double)prefs.getFloat(LATITUDE, 0);
double lon = (double)prefs.getFloat(LONGITUDE, 0);
}