您的位置:首页 > 其它

安卓学习之--如何关闭所有的activity

2014-10-22 13:21 302 查看
根据Activity的声明周期
方法1

我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标志
Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。

在A窗口中使用下面的代码调用B窗口
Java代码

Intent intent = new Intent();
intent.setClass(Android123.this, CWJ.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
startActivity(intent)

方法2:

在调用退出方法中写上

MyApplication.getInstance().exit();

public class MyApplication extends Application {

private List<Activity> activityList = new LinkedList<Activity>();
private static MyApplication instance;

private MyApplication() {
}

// 单例模式中获取唯一的MyApplication实例
public static MyApplication getInstance() {
if (null == instance) {
instance = new MyApplication();
}
return instance;

}

// 添加Activity到容器中
public void addActivity(Activity activity) {
activityList.add(activity);
}

// 遍历所有Activity并finish
/*
* 在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中
*
* MyApplication.getInstance().addActivity(this);
*
* 在需要结束所有Activity的时候调用exit方法
*
* MyApplication.getInstance().exit();
*/
public void exit() {

for (Activity activity : activityList) {
activity.finish();
}

System.exit(0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: