android - Activity 何时可见?在 onStart() 或 onResume() 之后?

标签 android android-activity onresume activity-lifecycle onstart

Docs说:

The visible lifetime of an activity happens between a call to onStart() until a corresponding call to onStop().


也在 this one你可以看到:

The onStart() call makes the activity visible to the user ...


所以我想从onStart()返回后Activity的UI一定是可见的.
最近,出于测试目的,我在 onResume() 中放置了一个无限循环。并猜测Activity的UI一定是可见的。但是启动 Activity 的结果是一个没有任何 UI 的白色窗口。
所以从onResume()返回后,似乎Activity的UI是可见的而不是从 onStart() 返回.这是真的?如果是,为什么文档会说这样的误导性陈述?
编辑:
您可能会像 Công Hải 一样认为 says :

I think the documents mention about window visible not view visible.


但我不认为“可见性”是指上面提到的“白窗”;因为如果你在 onCreate() 中放置一个无限循环,再次启动 Activity 的结果将是一个白色窗口,而正如文档所说 onCreate()不在 Activity 的“可见生命周期”中。所以“Activity的可见性”一定是指“白窗”以外的东西。
编辑2
除了官方文档,许多教程都说通过调用 onStart() 可以看到 Activity通过调用 onResume() 进行交互.他们都是未经测试就说错话吗?

最佳答案

将无限循环放入 onResume()并不是真的要告诉你整个故事。有很多 Activity 排队到主 (UI) 线程(如绘制屏幕),并且由于 onResume()在主 (UI) 线程上调用您正在阻止 Android 在主 (UI) 线程上执行任何工作。这就是在这种情况下您会看到白色(或黑色)屏幕的原因。
要回答您的问题,Activity将在 onResume() 之后可见.

关于android - Activity 何时可见?在 onStart() 或 onResume() 之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63186798/

相关文章:

安卓本地搜索

java - 使用 sharedPreferences 的 onPause 和 onResume 方法

android - 无法推送到 Github;错误 403

java - 从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?

android - 后台持久服务的Activity不会被kill掉

java - Android:ActivityNotFoundException 无法找到显式 Activity 类

android - 一旦适配器类中的数据发生更改,就更新 Activity 的 textview

java - 从 fragment 返回 Activity 时调用函数

android - 直到 onResume() 才触发 OnClickListener