应用程序上下文被杀死但活动没有

jos*_*usa 5 android application-lifecycle

我正在开发一个有一些活动的应用程序.一个活动开始下一个活动.要分享一些值,我正在使用一个名为MyApplication 的Application的自定义实现(我在谈论android.app.Application).
众所周知,如果需要更多空间,Android系统会杀死一个应用程序.但这会导致一个问题:

  • 我打开我的应用程序,就像任何其他应用程序一样使用它
  • 我关闭它(主页按钮)并使用其他应用程序
  • 系统会杀死我的应用程序,因为它浪费了内存
  • 当我重新打开我的应用程序时,它想要打开我使用的最后一个活动并且我得到一个强制关闭,因为MyApplication中的值为null

奇怪的是,系统会破坏我的应用程序,但它似乎保留了Activity.我真的不明白为什么会这样,因为应用程序似乎没有生命周期.

我想拥有的:
当MyApplication(整个应用程序,不仅是活动)被杀死时,我希望最后的活动也被杀死.因此,当我重新打开App时,它会启动manifest.xml提供的主要活动.
或者
MyApplication中的值是持久的,如果应用程序被销毁,不会丢失.(我说的是一些对象,所以我认为共享偏好不起作用).
我不想使用服务绑定我的活动,但有没有类似的方法告诉系统我上次使用的活动依赖于应用程序上下文?

我希望你明白我的问题是什么,有人可以帮我解决这个问题.

Ika*_*Ika 1

正确的做法是保存应用程序状态。重写 onSaveInstanceState(Bundle savingInstanceState) 方法来保存您的状态,并重写 onRestoreInstanceState 来检索它。

如果您需要保存大量数据,请考虑使用 SQL 数据库