我需要在活動之間傳遞我的對象列表。我不想每次都使用parcelable或序列化數據。我也不想將它保存在本地文件或數據庫中。這可能使我使用靜態對象。在活動之間傳遞/使用非原始對象
可以說我在活動Activity1到Activity2之間使用ListA。方法1:在其中一個活動中創建一個靜態ListA,並完成所有靜態ListA的工作。
方法2:在另一個類中創建一個靜態列表,我只用它來存儲這個列表並在列表中完成所有的東西。但是這意味着只要我的進程正在運行,它就會一直存在,而當我不需要它時,我必須手動將其設置爲空。
方法3。我正在擴展上面的類來使用靜態HashMap來實現它。 我有兩種方法之一,使用唯一鍵將靜態HashMap中的列表存儲起來,另一種方法是檢索列表並在每次檢索數據時將其刪除,以便List不再出現在靜態HashMap中。所以我們必須只傳遞生成的隨機密鑰來存儲活動之間的數據,我可以使用Intents作爲額外的數據傳遞。
當我使用上述任何一種方法時,會有什麼問題,哪種方法最好。
+1爲你的第一段「Uggg statics!...」無論如何可以說我想現在堅持靜力學,你能否評論我的做法3。我從地圖中移除靜態對象,不應該再出現。而且我確實考慮過你提到關於android釋放內存的情況。我處理該問題,並簡單地關閉我的活動,用戶可以再次請求數據。謝謝。 – achie
順便說一句,這個解決方案有一個catch ..你不僅要擴展活動,你還必須擴展你使用的其他基本活動,如「ListActivity」,「PreferenceActivity」等,並有這個邏輯複製在那裏... – havexz
@ havexz沒有趕上。無論你是子類Activity還是Activity的其他子類,這都會起作用。這裏的想法是,你不會在所有活動中共享設置/獲取代碼,因爲每個活動傳遞的內容可能有所不同,因此共享不會對你有多大好處。我想你正在考慮一些其他問題。 Acitivity.getApplication()方法可用於Activity的所有子類。 – chubbsondubs