我剛剛注意到,android會假裝通過在之前的活動中重新啓動您,在後臺將其殺死後重新啓動應用程序。android - 在非主要活動中處理應用程序啓動
1)我可以禁用此功能嗎?
我的問題在於我的ListsActivity。它傳遞一個列表數組,其中包含要顯示給用戶的項目。有些是文件夾 - 選中時,我打開另一個包含該文件夾內容的數組的ListActivity。例如,如果用戶決定搜索特定文件夾及其子文件夾中的所有項目,則可以動態生成列表。
如果我的應用程序在我的ListsActivity重新啓動,我不知道我沒有該列表數組。
2)我該怎麼辦?我不想每次調用onPause時都堅持數組。該數組在樹的頂部可能很大。更不用說後面歷史中的所有ListsActivities。
3)如果我發現我沒有我的列表數組,可以無縫地從ListsActivity onCreate重新啓動應用程序嗎?我的意思是不顯示The ListsActivity然後閃爍到主要活動。
編輯 - 請注意,這涉及遞歸,因爲用戶可以在任何時間點在歷史中有任何數量的活動。所以我有另一個問題:
4)如果以這種方式重新啓動 - 當我回擊時,我有完整的歷史記錄?這些活動中的每一個都必須重新創建嗎?我打開另一個問題,問這裏測試如何:How to test your app being killed and restarted?
你是什麼意思「android假裝在殺死...後恢復你的應用程序」?你在說要按「主頁」按鈕嗎?唯一的問題是你不知道你在哪個目錄?我想我對實際問題是什麼感到困惑? – codeMagic 2013-03-18 22:33:47
當你的應用程序在後臺android可以殺死它,然後通過重新創建應用程序來「恢復」它,但在他停止的活動中啓動用戶。 – Mark 2013-03-18 22:36:33
因此,例如我有一個2兆字節的樹在內存中包含文件夾。我有一個活動顯示每個文件夾,並將指向該活動的文件夾傳遞給該活動。爲了在應用程序被終止後支持恢復,此文件夾必須將整個樹保存在磁盤下面。 – Mark 2013-03-18 22:38:50