[英]Unregister BroadcastReceiver on Android
I think I'm not seeing the bigger picture here, or have miss understood how BroadcastReceiver
works. 我想我在这里看不到更大的图景,或者错过了了解
BroadcastReceiver
工作原理。
Let's imagine a dummy app that every time that the user receives a call, the app register the caller number at a file at the SD card. 假设有一个虚拟应用程序,该应用程序每次用户收到呼叫时,都会在SD卡上的文件中注册呼叫者号码。 To do that, I'd simply create a
BroadcastReceiver
that starts a Service
every time the user receives a call. 为此,我只需创建一个
BroadcastReceiver
即可在用户每次收到呼叫时启动Service
。
Now, If I want that app to works, I understand I can't call unregisterReceiver()
at the onPause()
method. 现在,如果我希望该应用程序正常运行,我知道我无法在
onPause()
方法上调用unregisterReceiver()
。 But in the other hand, If I run the app sometimes I get an exception: 但另一方面,如果我运行该应用程序,有时会出现异常:
Activity has leaked IntentReceiver that was originally registered here.
活动泄漏了最初在此处注册的IntentReceiver。 Are you missing a call to unregisterReceiver()?
您是否缺少对unregisterReceiver()的调用?
So, what I'm missing here? 那么,我在这里想念的是什么? How can my dummy app receive callback at every call if I have to call
unregisterReceiver()
? 如果必须调用
unregisterReceiver()
我的虚拟应用程序如何在每次调用时接收回调?
Thank you, 谢谢,
How can my dummy app receive callback at every call if I have to call unregisterReceiver()?
如果必须调用unregisterReceiver(),我的虚拟应用程序如何在每次调用时接收回调?
There are two ways to set up a BroadcastReceiver
: 设置
BroadcastReceiver
有两种方法:
registerReceiver()
, which is only useful for a process that will be running for other reasons registerReceiver()
,仅对由于其他原因而正在运行的进程有用
<receiver>
in the manifest 清单中的
<receiver>
Your situation sounds like a case for using <receiver>
. 您的情况听起来像是使用
<receiver>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.