利用Android广播机制关闭多个activity

时间:2021-12-11 02:13:05
在开发中遇到一个问题,需要在修改密码后退到登录界面,这就需要将前面的几个activity全部关闭,也很简单: 在各个activity加上如下代码:
 private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this); // 这句话必须要写要不会报错,不写虽然能关闭,会报一堆错
((Activity) context).finish();
}
};

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

// 在当前的activity中注册广播
IntentFilter filter = new IntentFilter();
filter.addAction("liu");
registerReceiver(this.broadcastReceiver, filter); // 注册
}

public void close() {
Intent intent = new Intent();
intent.setAction("liu"); // 说明动作
sendBroadcast(intent);// 该函数用于发送广播
finish();
}
在触发时间的按钮调用close()方法即可。