Receiver not registered

淺唱寂寞╮ 提交于 2019-12-01 20:50:21

Try as follows...

    mRefreshReceiver = new BroadcastReceiver() {

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

            log("BroadcastIntent received in MainActivity");

        }
    }

In onResume()...

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

    IntentFilter filter = new IntentFilter(DATA_REFRESHED_ACTION);    
    registerReceiver(mRefreshReceiver, filter);

}

In AsyncTask....

    Intent intent = new Intent(DATA_REFRESHED_ACTION);
    sendOrderedBroadcast(intent, null, new BroadcastReceiver() {

        @SuppressLint("NewApi")
        @Override
        public void onReceive(Context context, Intent intent) {

            log("BroadcastIntent received in MainActivity");

        }
    }, null, Activity.RESULT_OK, null, null);
}

You can follow the below link...

Android sendOrderedBroadcast Example

Because your broadcast receiver only created when (!mIsFresh).
So, in some case, your broadcast receiver is not instance because of mIsFresh.
Therefore, onResume register a null of broadcast receiver.
When onPause tries to unregister it, the error occur.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!