我正在使用不同的進程(在我的清單中使用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