Android - java.lang.IllegalArgumentException: Receiver not registered

时间:2019-09-16
本文章向大家介绍Android - java.lang.IllegalArgumentException: Receiver not registered,主要包括Android - java.lang.IllegalArgumentException: Receiver not registered使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
java.lang.IllegalArgumentException: Receiver not registered

从平台上可以看到Crash的错误问题,

出现了以下这条

java.lang.IllegalArgumentException: Receiver not registered

明明我OnResume有注册、OnPause有移除。

但为什么会发生这个问题

private BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        ... doSomeThing
    }
};

BroadcastReceiver这样命

onResume如下

@Override
protected void onResume() {
    super.onResume();
    registerReceiver(mReceiver, new IntentFilter("filter_action"));
}

onPause如下

@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(mReceiver);
}

但会出现如下的错误消息,虽然很少发生,但还是防呆一下(朝向零bug前进)

依照以下这篇文章

http://stackoverflow.com/questions/4978167/weird-receiver-not-registered-exception

可能防呆改成如下

@Override
protected void onPause() {
    super.onPause();

    try {
        if (mReceiver!= null) {
            unregisterReceiver(mReceiver);
        }
    }catch (Exception ex){
        ex.printStackTrace();
    }
}

原文:大专栏  Android - java.lang.IllegalArgumentException: Receiver not registered


原文地址:https://www.cnblogs.com/petewell/p/11526772.html