2

我在使用自己的 android.app.Application 子类时遇到了问题。我的应用程序中有许多活动,并且我正在运行一个消耗大量内存的自定义 ROM。发生的情况是当我启动第三方活动(相机)时,我的应用程序被杀死。我的应用程序子类存储整个应用程序的重要数据,因此没有它就无法工作。android.app.Application 没有任何保存或恢复应用程序状态的方法。活动确实有它们,但它们不适合。

任何猜测如何在应用程序子类上执行保存/恢复状态?

更新我已经设法通过填充从 onSaveInstanceState 获得的 Bundle 并在 onCreate 中恢复值来做到这一点。但是有没有更好的方法?

4

1 回答 1

0

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

在参照onCreate()

在第一次创建活动时调用。这是您应该进行所有常规静态设置的地方——创建视图、将数据绑定到列表等等。如果捕获了该状态,则向该方法传递一个包含 Activity 先前状态的 Bundle 对象(请参阅稍后的保存 Activity 状态)。始终跟在 onStart() 之后。

在参照onPause()

当系统即将开始恢复另一个活动时调用。此方法通常用于提交对持久数据的未保存更改、停止动画和其他可能消耗 CPU 的事情,等等。它应该很快地做任何事情,因为下一个活动在它返回之前不会恢复。如果活动返回到前面,则跟随 onResume(),如果它对用户不可见,则跟随 onStop()。

在应用程序被终止的情况下,使用Bundle对象是您应该保存状态的方式。该onPause()方法应该向您的应用程序发出信号,表明它现在处于可以被杀死以回收资源的状态。该onCreate()方法通过一个捆绑包传递,以便它可以从应用程序先前停止的地方开始,以提供无缝的用户体验,同时仍然允许系统在需要资源时终止应用程序。

于 2010-08-09T17:21:32.467 回答