Zac*_*she 5 android android-jobscheduler
我正在玩Android,并编写一个带有活动和服务的小应用程序.活动在按钮单击时启动服务,它应该从URI获取一些数据并将其作为结果返回.有时,数据不可用或不符合标准,然后即使活动在后台,服务也应该每隔X分钟重试一次.
我通过Intent和ResultReceiver(在包中传递)实现了活动和服务之间的通信.在实现服务时,我想使用新JobScheduler组件,但后来看到它只能接受一个PersistableBundle不能添加Parcelable对象(ResultReceiver)而只能添加基本类型的组件.
我希望服务能够安排在网络可用时运行的作业以及每隔X分钟检查一次的数据.一旦获得它,我希望将数据返回给服务,以便它可以决定它是否可接受或者我们需要再次重试.如果服务接受数据,它将通过该服务将其返回给活动ResultsReceiver.
我不能使用ResultsReceiver,JobService因为我不构造JobService实例(由完成JobInfo.Builder),我不能传递它对回调对象的引用.
如何在预定作业和调用它的服务之间进行通信?
对不起,如果它是微不足道的,我不熟悉Android ..
谢谢!
如何在预定作业和调用它的服务之间进行通信?
一般来说,你没有.您的服务和活动都不可能存在.重点JobScheduler是在您的应用不再运行时运行作业.如果您以其他方式使用它,那可能不合适.
话虽这么说,欢迎您使用事件总线(greenrobot的EventBus将是我的选择,虽然LocalBroadcastManager也可以在这里工作),在您的过程中提出一个事件,说明工作已经完成.您的服务(或活动)可以注册总线上的事件,并在这些事件发生时作出反应.然而,与此同时,如果没有注册处理程序,事件总线完全满足于让事件"落在地板上",因此JobService如果需要,您可以在"火灾和忘记"模式下提升事件.
| 归档时间: |
|
| 查看次数: |
2343 次 |
| 最近记录: |