2013-07-03 22 views
0

我有我的應用程序的問題,當它被帶回前臺的電話就內存不足的情況下,而應用程序被隱藏:應用帶回前臺有錯誤的活動

類從Application繼承被重新創建(onCreate被再次調用),從而丟失之前保存的數據。重新啓動的Activity不是在Manifest中標記爲主要操作的那個,而是最後一個處於活動狀態的主要操作。這是一個問題,因爲用戶登錄的主要活動是負責填寫Application子類數據的一個問題,我不能在以後填寫它。

有什麼辦法可以告訴應用程序重新啓動主要活動,而不是最新的在這種情況下?

回答

1

如果用戶登錄,則可以在onResume()中檢查。意味着您檢查您的應用程序數據是否已填充。如果情況並非如此,請完成活動並開始第一個應用程序。

用戶希望返回到最新的活動,所以一般的「始終啓動第一項活動」會擾亂用戶...

+0

我很快會嘗試檢查這項活動中的'的onCreate()'方法,而是調用'完成()'從那裏使應用崩潰。所以我想知道有一個更乾淨的方法來做到這一點。 – Jukurrpa

+0

我剛剛看到[這篇文章](http://www.truiton.com/2013/03/android-force-close-application-session-timeout/)。也許你可以採取一點。當應用程序最小化時,他會關閉所有活動。我強烈建議將「填充數據」過程外包出去,讓它在任何需要的地方發生。存儲登錄數據,即使在沒有經過第一次活動時也會登錄... – WarrenFaith

+0

其實我只是試着按照你在Activity的'onResume()'方法中所做的建議來改變它,並且它工作正常。如果它檢測到Application類的子類數據沒有初始化,我就調用'finish()'。我會將你的答案標記爲好的,只需將'onCreate()'改爲'onResume()' – Jukurrpa