当一个 Activity 进入暂停状态时(当它被另一个 Activity 部分覆盖时可能会发生这种情况),到底是什么进入了暂停状态?更准确地说:
- 它是否会暂停 Looper 处理传入的任务或消息,但仍然允许在 Looper 消息队列中提交作业?
- 如果一个 Activity 有一个信使,它从一个服务接收消息,那么信使队列是否也暂停以处理任务,但它仍然可以接收消息?几乎就像上面的情况一样。 1.
- 如果情况 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/