gpt4 book ai didi

java - 从 Intent Service 更新 Activity UI?

转载 作者:行者123 更新时间:2023-11-29 05:22:18 28 4
gpt4 key购买 nike

我需要从我的应用程序中的服务下载一些文件(10-20 个或取决于用户)。问题是我正在使用 IntentSevice 并发现很难更新 Activity UI。我知道以下更新 UI 的方法

  1. 使用处理程序并使用 Messenger 将消息从服​​务发送到 Activity ,例如 this .
  2. 发送广播 Intent 。

一旦 Activity 关闭并重新打开,使用第一种方法会导致问题,而且我不确定它的性能。使用 second 肯定会导致性能问题,因为我需要非常频繁地更新 UI(每两秒一次或两次)。在 IntentService 和 Activity 之间是否还有其他有效的数据交换方式?或者我必须将其切换到绑定(bind)服务?

最佳答案

Is there anyother possible way of exchanging data between IntentService and Activity which is efficient?

使用事件总线,例如 LocalBroadcastManager、greenrobot 的 EventBus 或 Square 的 Otto。让 IntentService 根据需要发布事件(例如,当文件下载完成时)。您的 Activity/fragment 可以在事件从前台来来去去时注册和注销事件。如果他们在前台,他们将收到事件并能够更新 UI。您甚至可以检测事件是否被前台 UI 拾取并让服务显示 Notification(如果需要)。

This directory包含三个示例应用程序,展示了我引用的三个事件总线实现的这一点。并且,FWIW,here is the PDF of slides我在最近关于使用事件总线的网络研讨会中使用了它。

关于java - 从 Intent Service 更新 Activity UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183530/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com