【发布时间】:2020-11-21 00:04:38
【问题描述】:
Docs说:
Activity 的可见生命周期发生在调用
onStart()到对应调用onStop()之间。
你也可以在this one看到:
onStart()调用使活动对用户可见...
所以我认为从onStart()返回后Activity的UI一定是可见的。
最近为了测试,我在onResume()中放了一个无限循环,猜想Activity的UI一定是可见的。但是启动Activity的结果是一个没有任何UI的白窗。
所以从onResume()返回而不是从onStart()返回后,Activity的UI似乎是可见的。这是真的?如果是,为什么文档会说这样的误导性陈述?
编辑:
你可能会想像 Công Hải says:
我认为文档中提到了窗口可见而不是视图可见。
但我不认为“可见性”是指上面提到的“白窗”;因为如果你在onCreate() 中放置一个无限循环,再次启动 Activity 的结果将是一个白色窗口,而正如文档所说,onCreate() 不在 Activity 的“可见生命周期”中。所以“Activity的可见性”一定是指“白窗”以外的东西。
编辑2
除了官方文档,许多教程都说通过调用 onStart() 可以看到 Activity 并通过调用 onResume() 进行交互。都是未经测试就说错话吗?
【问题讨论】:
-
我认为文件中提到的窗口可见而不是视图可见。
-
@CôngHải 请查看我的编辑。
-
好的,同意你的说法,看别人解释一下
-
"当活动对用户可见时调用。如果活动进入前台,则调用 onResume(),如果活动隐藏,则调用 onStop()。"在您放置的文档中,我读到它正在“变为”不可见,如果您将循环放入
onResume会发生什么? -
@CôngHải 正如我在问题中提到的,在
onResume()中放置无限循环并启动 Activity,会导致冻结的白色窗口。
标签: android android-activity onresume activity-lifecycle onstart