我正在使用IntentService从远程源获取数据。服务获取数据后,将使用sendBroadcast(intent)广播该数据。

在我的主要活动中,我扩展了BroadcastReceiver并定义了一个onReceive()来处理sendBroadcast()发送的数据。

我使用onResume()registerReceiver(...)中注册接收器,并使用onPause()unregisterReceiver()中注销它。这符合http://developer.android.com/reference/android/content/BroadcastReceiver.html中的建议。

如果sendBroadcast()在活动处于onPause()时(接收者未注册的地方)广播数据,则广播将无法处理。如果onPause()后跟一个onResume(),则将再次注册接收者,但是IntentService已经完成其工作,接收者将无法收听任何内容。问题:是否有一种很好的模式可以让活动知道广播已经发生?

最佳答案

我不知道如何处理当前的情况,但是开发人员以不同的方式做同样的事情。

他们使用EventBus(OttoGreenRobot's EventBus)是出于与您正在执行的相同目的而设计的,并且效果很好。

因此,使用它,您会发现它很有趣。

10-06 06:56