活动有多少个国家?

时间:2010-12-29 15:46:33

标签: android android-activity lifecycle states

“应用程序基础”教程中的Activity lifecycle部分指出 3 状态:

  

一项活动基本上有三项   规定:

(1。活跃/正在运行2.暂停3.停止)

但是当我继续阅读实际的Activity类文档时,Activity Lifecycle部分指出 4 状态:

  

一项活动基本上有四项   规定:

(1.活跃/正在运行2.暂停3.停止4.“掉线”?)

两个来源(在同一个网站上)同意前三个,但第四个仅在类文档中提及并且未命名。

那么,真的有4个州还是只有3个?

如果有4个,那么第4个名字是什么?

请帮助我理解这种差异。

此外,this beautiful and very informative flowchart中突出显示的彩色块似乎与状态不对应。在the flowchart中,你会标记3或4个州吗?

2 个答案:

答案 0 :(得分:4)

我会把它形容为三个州。第四个“状态”是不存在的,因为Android可能会破坏活动以释放RAM。但是,如果仍然可以通过“返回”按钮访问该活动,则Android会从Bundle挂起onSaveInstanceState()并在重新创建活动时使用该活动。如果你想考虑这个缓存的Bundle“状态”,我不会狡辩,但这不是我通常描述它的方式。

  

此外,在这个美丽且信息量很大的流程图中突出显示的彩色块似乎与状态不对应。

大多数情况下,该图显示了生命周期方法的顺序。如你所说,这是一个流程图,比状态图更重要。

  

在流程图中,您会标记3个或4个状态吗?

我不会。但是,活动/运行状态是绿色的“活动正在运行”气泡,暂停状态是白色“活动不再可见”气泡,停止状态将介于onStop()和{{1 }}。不存在的“状态”将是红色的“过程被杀”的泡沫。

答案 1 :(得分:1)

This diagram描绘了4个州,第4个州被标记为Destroyed

然而,正如你所看到的,这第四个“状态”无处可去。也就是说,与另外三个对另一个州“可以离开”的状态不同,这个“被毁”状态是死路一条。