Receiver not registered

后端 未结 2 1761
余生分开走
余生分开走 2021-01-20 15:31

I have a progamm with async task and a broadcast receiver to send a result code, so that Asynctask will know that app is working. But it crashes, sayin the receiver is unreg

相关标签:
2条回答
  • 2021-01-20 16:07

    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.

    0 讨论(0)
  • 2021-01-20 16:27

    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

    0 讨论(0)
提交回复
热议问题