我正在使用不同的进程(在我的清单中使用android:进程)能够在我的应用程序中使用多个mapView(How to use multiple MapActivities/MapViews per Android application/process)。 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);
}
感谢您的回答。我看过它,但没有得到两个活动的工作。另外我认为这对于我的目的来说是一点点的过载 – AlexVogel 2012-02-08 09:08:59