Android生命周期事件:CREATED

3
2个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
2
首先,CREATED不是一个事件,而是一个活动状态。给定的文档意味着在调用onCreate()后,活动处于CREATED状态(然后在调用onResume()后变为RESUMED)。当活动调用onStop()时,活动再次变为CREATED状态(在这种情况下仍然是CREATED但不是RESUMED)。

听起来很合理,但我们能否想出任何原因,解释为什么安卓团队不提供一个单独的“已停止”状态,以消除混淆呢?当一个活动被停止时,将其生命周期状态视为“已创建”,而当其暂停时,则视为“已启动”,这似乎有些奇怪。 - Muhammad Ahmed AbuTalib
因为这个“STOPPED”状态与“CREATED”状态完全相同。您可以通过考虑以下内容来理解所有这些状态: (不活跃)INITIALIZED-> CREATED-> STARTED-> RESUMED(更活跃)。最后 => DESTROYED(死亡)。 - StoneLam
我认为更好的解释是,在调用onStop后,活动被销毁,因此它不再具有任何状态,因此会创建一个新实例,其状态为CREATED。 - Phil
@Phil 在 onStop() 调用后,活动并没有被销毁,而是回到了 CREATED 状态。当用户再次切换到该活动时,无需创建另一个实例,而只需重复使用旧的实例即可。 - StoneLam
@StoneLam,但这并不是官方的 Android 文档所说的:https://developer.android.com/guide/components/activities/state-changes。 - Phil
1
@Phil 在用户按下返回键或更改配置的情况下,onStop()之后会立即调用onDestroy(),然后活动实例将被销毁。如果只触发了onStop(),例如按下Home键或startActivity()以显示另一个活动,则当前活动将保留在那里。 - StoneLam

1
请注意,您混淆了状态和事件! 状态(枚举值):CREATED、DESTROYED、INITIALIZED、RESUMED、STARTED 还要检查这个链接:https://developer.android.com/guide/components/activities/state-changes “当发生配置更改时,活动将被销毁并重新创建。原始活动实例将触发onPause()、onStop()和onDestroy()回调。将创建一个新的活动实例,并触发onCreate()、onStart()和onResume()回调。” 因此,考虑到可能的状态,当调用onStop时,CREATED是最合适的状态。

我最初对状态和事件感到困惑,现在我有不同的困惑。为什么不提供一个独立的停止状态的合理性是什么? - Muhammad Ahmed AbuTalib
1
因为当onStop被调用时,活动被销毁了,所以它不能有状态,因为它已经不存在了。 - Phil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,