2010-08-09 97 views
1

我遇到了使用我自己的android.app.Application的子類的問題。我在我的應用程序中有很多活動,我正在運行一個自定義ROM,它消耗了很多內存。發生什麼事是當我啓動第三方活動(相機)我的應用程序被殺害。我的應用程序子類存儲整個應用程序的重要數據,所以它沒有它就無法工作。 android.app.Application沒有任何保存或恢復應用程序狀態的方法。活動確實有他們,但他們不適合。保存android.app.Application狀態

任何猜測如何執行應用程序子類上的保存/恢復狀態?

UPDATE我已經設法通過填充從onSaveInstanceState獲得的Bundle並在onCreate中恢復值來實現此目的。但有沒有更好的辦法?

回答

0

根據http://developer.android.com/guide/topics/fundamentals.html

參照onCreate()

在首次創建活動時調用。這是您應該完成所有常規靜態設置的位置 - 創建視圖,將數據綁定到列表等等。如果捕獲到該狀態,則傳遞包含活動之前狀態的Bundle對象(請參閱後面的保存活動狀態)。 總是跟着onStart()。

參考

onPause()

當系統即將啓動恢復另一個活動時調用。此方法通常用於將未保存的更改提交給持久性數據,停止可能消耗CPU的動畫和其他內容等。它應該儘快做它,因爲下一個活動將不會恢復,直到它返回。 如果活動返回到前面,則由onResume()跟隨;如果它對用戶不可見,則由onStop()跟隨。

使用Bundle對象是在應用程序被終止的情況下應該保存狀態的方式。 onPause()方法應該是一個信號給你的應用程序,它現在處於可以被殺死以回收資源的狀態。 onCreate()方法被傳遞給一個bundle,以便它可以提取應用程序以前停止的位置,以提供無縫的用戶體驗,同時允許系統在需要資源時終止應用程序。

+0

'android.app.Application'不是'Activity'。 – Macarse 2010-10-19 19:24:54