我需要保持對不同活動之間的對象的引用。這兩個提及似乎創造了從活動到活動的新對象。這是一個問題,因爲一旦父活動獲得焦點,對「子」活動中對象的更改就不會持續。我對此的解決方案只是在子活動調用和使用的父最活動中創建一個靜態getter。這是不正確的方式去做這件事?使用靜態而不是parcelable/serialize - 這是不好的?
1
A
回答
2
如果要在活動之間共享對象的單個實例,可以創建單例類。使用父類最活動類來實現單例唯一的錯誤可能是它可能違反了single responsibility principle。
0
您可以通過在您的Application
派生類中將其設置爲字段來使對象在整個應用程序生命週期中保持持久性。
public class MyAppication extends Application {
private Object mMyData;
public setData(Object data) {
mMyData = data;
}
public Object getData() {
return mMyData;
}
}
然後((MyApplication)getAppllication()).setData
或getData()
這樣你可以因爲MyApplication
會一直存在的應用程序中進行數據交換。
您還可以添加MyApplcation
體現
0
您應該創建一個單身,這有每當你跟這一個實例。 (就像你的描述)。
這裏有一個我早些時候:https://stackoverflow.com/a/6539080/413127
相關問題
- 1. 像String這樣的不可變對象的實際好處,而不是僅僅使用靜態final?
- 2. 靜態方法get - 這是不好的做法嗎?
- 3. 使用靜態還是非靜態是一個好主意? (Android)
- 4. 如何使用動態分配而不是靜態int?
- 5. 在c使用STL動態而不是靜態地++
- 6. Xcode6塊一些靜態庫的靜態庫,而不是其他
- 7. 使用SqlCommand.ExecuteNonQuery而不是...的好處
- 8. GCC總是試圖用靜態的libc庫,而不是共享
- 9. 這是CComSafeArray的使用不好嗎?
- 10. 使用lambda表達式而不是foreach是不是很好?
- 11. 使用靜態爲const char * const的,而不是#定義
- 12. C#何時使用靜態類而不是類的實例?
- 13. 靜態...不是真的靜態
- 14. java.lang.NoClassDefFoundError拋出靜態方法而不是靜態成員
- 15. 是否使用靜態類或不
- 16. 使用信號量而不是while循環。這是好還是壞?
- 17. 爲什麼使用靜態「常量」而不是實際值?
- 18. 使用靜態或單例類而不是System.Web.HttpRuntime.Cache?
- 19. 使用靜態庫而不是共享庫
- 20. 使用屬性文件,而不是靜態最終變量
- 21. 使用單而不是全局靜態實例
- 22. Express.js和AngularJS - 使用靜態頁面而不是快速視圖
- 23. 爲什麼使用單例而不是靜態方法?
- 24. 爲什麼文本在動畫中使用而不是靜態
- 25. 鏈接建立靜態庫,而不是使用add_subdirectory?
- 26. 使用變量搜索數組而不是靜態字符串
- 27. 使用關鍵參數,而不是Id與Pimcore靜態路由
- 28. 爲什麼使用singleton而不是靜態類?
- 29. Three.js光不是靜態的
- 30. 這是不是比這更好?
爲什麼你有一個靜態引用的上下文。我可以將一個活動傳遞給你的單身人士,然後改變方向,活動會被破壞,但你的上下文領域將它保存在那裏。此外,人們可以使用不再有效的上下文 – 2012-04-09 16:36:46
這是一個私人蔘考。這個類是一個具有一個全局上下文的單例,如果這成爲一個問題,這取決於你在類中使用上下文。 – Blundell 2012-04-09 16:41:24
對單身人士的引用會隨着活動而被摧毀。下一次你要求單身你不得不更新上下文。啊,所以這不是100%的單身我明白你的意思。 – Blundell 2012-04-09 16:42:19