注销广播接收器 - 机器人 [英] Unregister Broadcast Receiver - Android

查看:115
本文介绍了注销广播接收器 - 机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个的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 BroadcastReceivers, you have to remember the instance of your receiver in onPause() to register it again during onResume().

这篇关于注销广播接收器 - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆