如何理解developer.android.com中关于broadcastreceiver的这句话?

时间:2014-10-30 00:44:35

标签: android broadcastreceiver

  

暂停时不会收到意图,这将减少不必要的系统开销

     

完整段落:如果在Activity.onResume()实现中注册接收器,则应在Activity.onPause()中取消注册。 (暂停时不会收到意图,这将减少不必要的系统开销)。不要在Activity.onSaveInstanceState()中取消注册,因为如果用户在历史堆栈中向后移动,则不会调用此方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

文档中的这一说明指出了有关使用活动上下文注册BroadcastReceiver时的特殊情况的一些其他信息。当BroadcastReceiver被定义为AndroidManifest.xml文件的一部分时,这种情况不适用。

基本上,该注释表明注册到活动上下文的BroadcastReceiver在该活动暂停时不会收到任何广播意图。因此,应在Activity.onPause()方法中取消注册注册到活动上下文的BroadcastReceiver对象。在Activity.onPause()方法中取消注册BroadcastReceiver会将其从内存中删除,以便没有系统资源用于无意义的注册。

要明确的是,系统资源的最佳用途是在Activity.onResume()方法中注册BroadcastReceivers,并在Activity.onPause()方法中注销BroadcastReceivers。