4

我是 Android 新手,我在 savedInstanceState 和管理生命周期方面遇到了一些麻烦。

http://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycle 我阅读了关于生命周期的文章,但我真的不知道进程何时被杀死,我的漂亮 savedInstanceSate 将被使用!我可以按“HOME”,但我认为它只会启动“onPause”然后“onResume”。

如果我转到菜单->设置->应用程序->管理应用程序->我的应用程序名称->强制停止,它仍然被视为正在运行的应用程序,但是当我重新启动它时,我会回到“第一个活动”。所以这就像关闭应用程序,如果我理解得很好,它不是我想要的“杀死进程”。

所以这是我的问题:

1)如何确定我的进程已被杀死(所以我的应用程序将在重新启动时使用 savedIntanceState)?

2)如何强制终止进程,以测试我的 savedInstanceState 是否编程良好?

3)当被“杀死”后,应用程序重新启动并调用“onCreate”(当时使用saveInstanceState!=null),我是否仍然可以访问我在调用Activity时提供的Intent Extra信息,或者当进程被杀死时,意图的信息被删除了?换句话说,我必须在我的 saveInstanceState 中包含 Intent Extra 中存储的内容的副本吗?

我希望我足够清楚;)

4

1 回答 1

1

1)您需要担心的只是覆盖您的 Activity 的onSaveInstanceState(). Android 会在杀死你的进程之前调用它。

2)您需要设置一个Android测试项目。然后,创建一个扩展的测试ActivityInstrumentationTestCase2,你可以Instrumentation通过调用 getInstrumentation() 来获取一个对象。从那里,您可以调用Instrumentation.callActivityOnCreate 并传递一个 Bundle 对象以用于测试。

3) 我很确定您会将附加内容存储在 savedInstanceState 包中。

于 2011-08-29T00:28:54.417 回答