注销广播接收器 - 机器人 [英] Unregister Broadcast Receiver - Android
问题描述
我有一个的BroadcastReceiver
一次性使用。
I have a BroadcastReceiver
for one time use.
我注册它的活动。我不能把 unregisterReceiver()
在的onPause
,因为它留下来,即使在运行时,该活动被暂停或破坏。
I'm registering it in an Activity. I can't put the unregisterReceiver()
in onPause
because it has to stay running even when the activity is paused or destroyed.
我要的BroadcastReceiver注销时,它本身是做,是这样的:
I want the BroadcastReceiver to unregister itself when it is done, something like this:
public class SmsReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
// do some code..
context.unregisterReceiver(this)
}
}
但它导致异常:接收器未注册
推荐答案
A 的BroadcastReceiver
只是执行过程中存在的的onReceive()
方法。因此,这个的计算结果为扔掉的实例每次广播发射时间/接收。请参阅<一href="http://developer.android.com/reference/android/content/BroadcastReceiver.html#ReceiverLifecycle">Broadcast接收器生命周期的。对于动态注册的BroadcastReceiver
的S /注销,你要记住你的接收机的的onPause)实例(
注册再次在 onResume()
。
A BroadcastReceiver
only exists during the execution of its onReceive()
method. So, this evaluates to a throw-away instance every time the broadcast is fired/received. See Broadcast Receiver Lifecycle. For dynamically registering/unregistering of BroadcastReceiver
s, you have to remember the instance of your receiver in onPause()
to register it again during onResume()
.
这篇关于注销广播接收器 - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!