你是否错过了对unregisterReceiver()的调用?在android中

时间:2015-05-16 05:57:46

标签: android broadcastreceiver

我收到以下错误:

"您是否错过了取消注册接收器的呼叫"

android.app.IntentReceiverLeaked: 

Activity com.apps.activities.MainActivity has leaked IntentReceiver com.wwhere.fragment.MainRecyclerViewFragment$1@44d50ba8 that was originally registered here. Are you missing a call to unregisterReceiver()? at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:809)

at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:610)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1478)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1458)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1452)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:467)

我的代码是:

private BroadcastReceiver actionConversation = new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {
        setAdapter();
    }
};

private void registerBroadCasts() {
    IntentFilter intentConnection = new IntentFilter(Constants.CONVERSATION_SCREEN);
    getActivity().registerReceiver(actionConversation, intentConnection);
} 

我在registerBroadCasts()方法中调用 onCreate

1 个答案:

答案 0 :(得分:13)

我猜您在应用程序中使用GCM

在您要将设备注册到activity的{​​{1}}中,请输入以下代码:

GCM

其中 mHandleMessageReceiver BroadcastReceiver 的实例。