0

众所周知,所有的 android 活动都会创建、启动、恢复、运行、暂停、停止、销毁。这个过程在android 手册中有很好的展示。

在这个生命周期中,是否有可能了解活动是以哪种方式创建的?我的意思是我如何理解是直接调用活动还是创建活动一次然后被android os杀死然后在用户导航回来后重新创建?

更基本上,我如何理解一项活动是处于第二次生命还是第一次生命?

编辑:为什么我需要这个?
在我的设计中,我有一个从网络加载数据的主页。当用户点击一些细节时,它会将数据放在一个静态对象中,就像 web 中的会话一样。这正常工作。

但是当用户在第二人生开始详细活动时,静态对象中的数据被杀死,我得到了空指针异常。

我有 4 个具有相同架构的项目,所以我想解决这个问题。

4

3 回答 3

2

您已经在那里获得了流程图信息。您始终可以通过存储您在期间或类似Activity期间死亡的事实来保留某些状态以供以后使用。onDestory()然后,下一次Activity恢复你的时候,你就会知道你是真的被摧毁了还是刚刚停止了。我认为您不会从操作系统免费获得任何这些信息,因为在理想情况下它并不重要。

于 2012-05-02T21:45:33.363 回答
0

您不应该区分这些,因为即使在它被销毁之后(至少该方法已被调用),它也可能“恢复”到它被销毁时的状态。这可能与第一次创建时的初始状态不同。

请解释你需要这个的原因 - 你应该“重新考虑”你的问题,因为 Android 在这个问题上确实表现得“奇怪”。

最好根据 Android 系统行为来设计您的项目生命周期 - 实际上没有关于这一点的任何地方记录(至少到目前为止我还没有遇到任何好的文档)

于 2012-05-02T21:46:04.253 回答
0

如果我理解您的问题,您想知道您的活动何时被操作系统破坏或何时仅暂停。只需使用 logcat 语句:

onPause() {
    super.onPause();
    Log.v("Activity", "Paused");
}

onDestory() {
    super.onDestroy();
    Log.v("Activity", "Destroyed");
}

你可以对 onCreate()、onResume() 做同样的事情。

于 2012-05-02T21:48:51.840 回答