2016-08-13 59 views

回答

1

你有两个不同的问题:

  1. 你如何从服务过程中对UI处理数据?

  2. 如何从您为#1所做的任何操作获得数据的任何部分都需要该数据?

有任何数量的对#1的解决方案:PendingIntentResultReceiverMessenger,AIDL定义的回调用于绑定的服务连接等#2,则大多是使用事件总线或类似的东西的问题以提醒所有相关的Java对象有关新数据。

因此,举例来说,这里是使用这个PendingIntent一个现成的,袖口配方:

  1. 实现一个BroadcastReceiver或在活动过程中,清单注册Service,但没有<intent-filter>

  2. 作为调用startService()的一部分,创建使用PendingIntentgetBroadcast()getService()工厂方法,与Intent标识您BroadcastReceiverService,并把该PendingIntent一个额外的与使用IntentstartService()

  3. 你在其他流程服务,当它有数据要发送到活动过程中,calls send() on the PendingIntent,包括Intent有数据填充到广播或服务请求

  4. BroadcastReceiver或步骤#1 Service需要交付给它的Intent和使用事件总线,让您的活动过程的其余部分知道不管发生什么事情,也处理的情况下没有在活动公关(例如,如果所有活动都被破坏,则筹集Notification

+0

感谢您的帮助!会试试这个。 – VishalKale

+0

谢谢@CommonsWare。工作没有任何问题。在PendingIntent和BroadcastReceiver的帮助下从服务过程中获得数据。使用EventBus进一步将数据传输到UI组件。 – VishalKale

相关问题