11

我可以在活动暂停时更新 UI / 视图(例如更改 textviews 文本),例如,因为另一个活动已启动?

我已经实现了一个小测试应用程序,通过将活动与事件总线连接起来。

活动 A 有一个 TextView。Activity A 在 onCreate() 中将自己注册到 EventBus,并在 onDestroy() 中取消注册。活动 A 启动活动 B。活动 B 进行一些更改并触发 ChangedEvent。这个 ChangedEvent 会被 Activity A 接收到,因为即使 Activity A 暂停,它仍然会被注册,并且会更新 Activity A 的 TextView(改变文本)。

一切正常。我已经在各种 Android 版本(2.3.3 到 4.3)上的各种 nexus 设备和模拟器上对此进行了测试。没有异常或意外行为。

所以可以肯定地说,我可以构建一个带有 Activity 的应用程序,在 Activity 暂停时更新他的 View 吗?这取决于制造商等吗?我只能在现有的 android 设备上测试我的示例应用程序。

4

1 回答 1

15

是的,你可以指望这个工作。

视图实际上并不关心拥有其窗口的 Activity 的生命周期。(您可以将其他视图直接添加到 Activity 生命周期之外的 WindowManager 中。)

除非一个 Activity 被实际销毁(当然,只要你的进程没有被杀死),它的窗口和视图的记录会一直存在。如果窗口仍然可见,即使 Activity 暂停,对其中的视图的更新也将可见。

于 2013-09-09T22:45:29.840 回答