分享活動之間位置信息的最佳做法是什麼? 例如:Android - 在活動之間分享位置信息
- 活性1(主要)顯示器數據基於用戶的當前位置(緯度&長)
- 活性2顯示了谷歌地圖數據接近的用戶的當前位置
- Activity3顯示鄰近日曆事件到當前用戶的位置
每個活動都會通過發送當前位置來調用特定的webservice方法。
我問這個,因爲我很困惑:
- 我應該創建定位對象的靜態引用(獲得的主要活動的用戶的位置),並使用該對象的其他活動。
- 每個活動都有自己的實現來獲取用戶位置。
謝謝
分享活動之間位置信息的最佳做法是什麼? 例如:Android - 在活動之間分享位置信息
每個活動都會通過發送當前位置來調用特定的webservice方法。
我問這個,因爲我很困惑:
謝謝
如果你想爲你導航活動的位置保持不變,在傳遞起始意圖,只是有每個活動保持數據的副本。
另一方面,如果您希望在所有3中都具有動態位置,那麼我會考慮製作服務以收聽位置服務。然後您的活動可以綁定到該服務並接收更新。這可以確保您不會在多個監聽器周圍閒逛,並且意外地讓位置偵聽器的存活時間超過所需的時間。它還爲您提供一個地方來保持必要的設置(即用戶停用,頻率和精度等)。
它很容易將信息從一個活動傳遞到另一個活動。當您創建用於啓動其他活動的意圖時,您可以將附加信息附加到新活動啓動時可以訪問的意圖。
下面是一個例子:
從一個活動的信息傳遞到另一個你可以這樣做:
Intent i = new Intent(this, OtherActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("variableName", "variable value");
然後在其他活動,你會做以下
Bundle extras = this.getIntent().getExtras();
String var = null;
if (extras != null) {
var = extras.getString("variableName");
}
你可以傳遞的不僅僅是字符串,整數等......你甚至可以傳遞對象。也可以傳遞Parcelable類的子對象。要將parcelable添加到意圖簡單:
i.putExtra("variableName", instanceOfMyClass);
在新的活動您只需撥打:
MyClass obj = (MyClass) extras.getParcelableExtra("parcelableName");
我也想有什麼做的正確方法。 – Eduardo