我正在使用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(Otto,GreenRobot's EventBus)是出于与您正在执行的相同目的而设计的,并且效果很好。
因此,使用它,您会发现它很有趣。