所以我在活动A中注册广播接收器
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if (action.equals("finish_activity")) {
finish();
}
}
};
(直接在课堂上)
并取消注册
@Override
protected void onStop() {
super.onStop();
unregisterReceiver(broadcastReceiver);
}
。 当我尝试从活动B中调用它时
Intent finishCheckALoanActivityIntent = new Intent("finish_activity");
sendBroadcast(finishCheckALoanActivityIntent);
(一段时间以前由活动A开始(不确定是否重要))
它没有完成活动A.换句话说,广播接收器没有被调用。 (PS:我在调用接收器完成活动A后立即在我的活动B中使用finish()。
我试过调试它。我在onReceive
方法中设置了一个断点,但断点并没有被击中。
答案 0 :(得分:0)
问题是我在onStop活动中调用了unregister方法,当我再次检查流程图时https://developer.android.com/reference/android/app/Activity我意识到我在使用之前取消注册它所以我在onDestroy中调用了unregister方法