打开多个Activity时,同时结束多个Activity的方法:
方法一:
例如:MainActivity无序随意的打开了其他的Activity:Activity1、Activity、Activity3、Activity4、Activity5等多个Activity,当在MainActivity里面选择退出时,同时将其它已打开的Activity结束的办法:
第1步:在每个Activity里面注册一个广播接收机,从Activity1、Activity、Activity3、Activity4、Activity5都加入以下代码如下:
定义CloseReceiver对象:
Private CloseReceiver closeReceiver;
在onCreate里面注册广播接收机:
closeReceiver = new CloseReceiver(); IntentFilter intentFilter = new IntentFilter("org.shuxiang.CloseReceiver"); registerReceiver(closeReceiver, intentFilter);
广播接收机的代码:
/** * 结束Activity的广播接收机 * @author shuxiang * */ public class CloseReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { finish(); } }
第2步:在MainActivity里面发送广播:
发送结束所有Activity的广播:
Intent intent = new Intent(); intent.setAction("org.shuxiang.CloseReceiver"); sendBroadcast(intent);
方法二:
例如:
在MainActivity里面按顺序打开了多个Activity:Activity1、Activity、Activity3、Activity4、Activity5,
现在要做的是,从Activity5返回到MainActivity,并同时将Activity5、Activity4、Activity3、Activity2、Activity1这5个Activity都结束掉。
方法:在Activity5.java里面写上:
Intent intent = new Intent(); intent.setClass(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish();