打开多个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();