Android:仅在活动正在运行时才从服务更新ImageView

时间:2014-12-16 17:27:12

标签: android android-activity service imageview

我有一个服务触发在单独的线程中对位图进行一些计算。 在内存中我有很多要处理的位图,因此我遇到了问题。

当只有服务正在运行(活动暂停/隐藏/无论什么)时,我想处理这些位图而不更改任何UI。 但只有当Activity位于顶部(可见/活动/正在运行)时,我才想刷新ImageView以显示当前处理的位图(它将是5 FPS)。

那么如何检查Activity是否正在运行?如何从服务中轻松更新ImageView? (我可以传递位图或文件路径)。 是否建议将服务绑定到活动?使用Messenger?

1 个答案:

答案 0 :(得分:0)

  

那么如何检查Activity是否正在运行?

别。

  

如何从服务中轻松更新ImageView?

使用事件总线实现,如LocalBroadcastManager,greenrobot的EventBus或Square的Otto。当位图准备就绪时,让服务引发事件。让您的活动在活动为前景时注册事件,并在活动在后台时注销。然后,服务不关心活动发生了什么 - 事件总线处理所有这些。

以下是此模式的实现:

  

是否建议将服务绑定到活动?

Android中确实没有这样的概念。