我正在构建一个应用程序,将 url 和 Json 存储在本地 SQLite 数据库中,然后安排 JobService。
在JobService中,我从db中一一取出所有请求并执行它们。一旦它们被执行,我只能在 JobService 内得到响应。现在我真正的问题是如何从服务将响应发送回用户。
我考虑在活动中实现回调/侦听器,并在服务内部的侦听器对象中传递值。但我正在从 SQLite 数据库中取出请求。因此,我不知道如何将回调实例或上下文保存在数据库中,以便我可以将其与服务本身中的其余数据一起获取。
有任何想法吗?
一种方法是使用事件总线实现:LocalBroadcastManager
、greenrobot 的 EventBus、一些基于 Rx 的总线,甚至是一个简单的MutableLiveData
单例。让服务人员在公交车上发布消息。让您的 UI 层在总线来来去去时进行注册和注销。让 UI 层处理总线上收到的消息,并让服务引发一个Notification
如果UI层没有接收到消息。
以下是使用的示例实现:
-
LocalBroadcastManager
: https://github.com/commonsguy/cw-omnibus/tree/v8.6/EventBus/LocalBroadcastManager
- greenrobot的EventBus:https://github.com/commonsguy/cw-omnibus/tree/v8.6/EventBus/GreenRobot3
-
MutableLiveData
: https://github.com/commonsguy/cw-androidarch/tree/v0.1/General/LiveBus
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)