在Android上取消注册BroadcastReceiver

时间:2015-08-14 22:18:45

标签: android broadcastreceiver

我想我没有看到更大的图片,或者错过了解BroadcastReceiver的工作方式。

让我们想象一个虚拟应用程序,每当用户接到一个电话时,该应用程序就会在SD卡的文件中注册来电号码。为此,我只需创建一个BroadcastReceiver,每次用户接听电话时都会Service。{/ p>

现在,如果我希望该应用有效,我知道我无法使用unregisterReceiver()方法拨打onPause()。但另一方面,如果我运行应用程序,有时我会得到一个例外:

  

活动已泄露最初在此注册的IntentReceiver。你是否错过了对unregisterReceiver()的调用?

那么,我在这里缺少什么?如果我必须拨打unregisterReceiver(),我的虚拟应用程序如何在每次通话时收到回叫?

谢谢,

1 个答案:

答案 0 :(得分:2)

  

如果我必须调用unregisterReceiver(),我的虚拟应用程序如何在每次调用时都收到回调?

设置BroadcastReceiver有两种方法:

  • registerReceiver(),仅对因其他原因而运行的流程有用

  • 清单中的
  • <receiver>

您的情况听起来像是使用<receiver>的情况。