Я использую разные процессы (используя android: process в моем манифесте), чтобы иметь возможность использовать более одного mapView в моем приложении ( Как использовать несколько MapActivities / MapViews для приложения / процесса Android ) , Эти 2 карты находятся в разных действиях и на разных вкладках моего общего tabhost.
Нет. Я хочу увеличить определенное место, которое выбрано пользователем в другой деятельности. Использование статических переменных не сработало. После этого я попытался сохранить данные в файле SharedPreferences и снова прочитать их в MapActivity. Но это тоже не работает. Данные успешно записаны, но MapActivity не находит никаких данных в SharedPreferences.
Есть ли возможность обмена данными между двумя или более процессами?
Сохранение данных о местоположении:
public static boolean addLocationToShared(float lat, float lon){
Log.i(TAG, "addLocationToShared: " + lat + "," + lon);
if(mapShared==null)
mapShared = TLApplication.getAppContext().getSharedPreferences(MAP_SHARED_PREFS, Context.MODE_PRIVATE);
return mapShared.edit().putFloat(PREF_LAT, lat).putFloat(PREF_LON, lon).commit();
}
Чтение данных о местоположении:
mapShared = TLApplication.getAppContext().getSharedPreferences(MAP_SHARED_PREFS, Context.MODE_PRIVATE);
float lat = mapShared.getFloat(PREF_LAT, 1000);
float lon = mapShared.getFloat(PREF_LON, 1000);
Log.d(TAG, "zoom to " + lat + ", " + lon);
if(lat != 1000 && lon != 1000){
GeoPoint point = new GeoPoint((int)(lat * 1E6), (int)(lon * 1E6));
zoomToLocation(point, 15);
}