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
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.
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