android - 当 Android Activity 进入暂停状态时,真正暂停的是什么?

标签 android activity-lifecycle

当一个 Activity 进入暂停状态时(当它被另一个 Activity 部分覆盖时可能会发生这种情况),到底是什么进入了暂停状态?更准确地说:

  1. 它是否会暂停 Looper 处理传入的任务或消息,但仍然允许在 Looper 消息队列中提交作业?
  2. 如果一个 Activity 有一个信使,它从一个服务接收消息,那么信使队列是否也暂停以处理任务,但它仍然可以接收消息?几乎就像上面的情况一样。 1.
  3. 如果情况 1 或 2 或(1 和 2)有效,那么我不需要处理暂停状态的 UI 任务缓冲区(如帖子 How to handle Handler messages when activity/fragment is paused 中所建议的),因为一旦 Activity 恢复,它将开始处理消息队列,什么都不会丢失。我的这个假设正确吗?

我觉得这应该是这样实现的,但不确定是否是这样。

最佳答案

通常,Activity 暂停意味着它的 UI 元素不是最前面的。 UI 线程仍在工作。这意味着Looper仍然可以处理消息。您提到的信使仍然可以工作。

虽然 UI 元素可能不可见,但您仍然可以在后台更改它们的状态。例如,更改 TextView 的文本。一旦 Activity 再次恢复,您就可以看到此类更改。

关于android - 当 Android Activity 进入暂停状态时,真正暂停的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38783389/

相关文章:

android - 滚动时 android 上 chrome 中的固定位置元素抖动

android - 恢复后如何返回到同一个 Activity 实例?

java - 如何知道一个应用程序在最近使用很长时间后何时被杀死?

android - 为什么要通过 Application 类来管理生命周期?

android - 如何测试您的应用程序被杀死并重新启动?

android - 如何完成销毁的 Activity

安卓工作室 : "Waiting for device." Trying to run app on phone

java - 更改布局不透明度(进度条除外)

android - 如何从 Activity 迁移到 fragment

java - Gradle 为每个子项目调用不同的任务