在 Android 上注销 BroadcastReceiver
Unregister BroadcastReceiver on Android
我想我没有看到更大的图景,或者没有理解 BroadcastReceiver
的工作原理。
让我们想象一个虚拟应用程序,每次用户接到电话时,该应用程序都会在 SD 卡上的一个文件中注册来电号码。为此,我只需创建一个 BroadcastReceiver
,每次用户接到电话时都会启动 Service
。
现在,如果我想让该应用程序运行,我知道我不能在 onPause()
方法中调用 unregisterReceiver()
。但另一方面,如果我 运行 应用程序有时会出现异常:
Activity has leaked IntentReceiver that was originally registered here. Are you missing a call to unregisterReceiver()?
那么,我在这里缺少什么?如果我必须调用 unregisterReceiver()
,我的虚拟应用程序如何在每次调用时接收回调?
谢谢,
How can my dummy app receive callback at every call if I have to call unregisterReceiver()?
有两种设置方法 BroadcastReceiver
:
registerReceiver()
,仅对因其他原因运行
的进程有用
<receiver>
在清单中
您的情况听起来像是使用 <receiver>
的情况。
我想我没有看到更大的图景,或者没有理解 BroadcastReceiver
的工作原理。
让我们想象一个虚拟应用程序,每次用户接到电话时,该应用程序都会在 SD 卡上的一个文件中注册来电号码。为此,我只需创建一个 BroadcastReceiver
,每次用户接到电话时都会启动 Service
。
现在,如果我想让该应用程序运行,我知道我不能在 onPause()
方法中调用 unregisterReceiver()
。但另一方面,如果我 运行 应用程序有时会出现异常:
Activity has leaked IntentReceiver that was originally registered here. Are you missing a call to unregisterReceiver()?
那么,我在这里缺少什么?如果我必须调用 unregisterReceiver()
,我的虚拟应用程序如何在每次调用时接收回调?
谢谢,
How can my dummy app receive callback at every call if I have to call unregisterReceiver()?
有两种设置方法 BroadcastReceiver
:
registerReceiver()
,仅对因其他原因运行 的进程有用
<receiver>
在清单中
您的情况听起来像是使用 <receiver>
的情况。