安卓学习之--如何关闭所有的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);
}
方法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);
}
相关文章推荐
- 安卓学习之--如何关闭所有的activity
- Menu学习,和如何实现一步关闭所有的activity退出应用程序
- 如何关闭所有的activity
- 如何随时随地退出Activity,在退出Activity的时候关闭之前的Activity,如何退出程序所有Activity
- Android程序有很多Activity,在B中如何关闭整个Android应用程序,关闭所有的 Activity
- 安卓学习笔记---如何保存数据到SharePreference里面,获取所有sp文件以及删除文件
- 如何关闭 一个 应用中的所有 Activity
- 安卓如何实现所有Activity全部销毁
- 安卓学习笔记---Android 中如何关闭Thread线程
- 如何关闭应用中所有的Activity~
- 如何关闭所有的activity
- 安卓学习之--如何关闭所有的activity
- 安卓学习笔记---Intent的使用,如何改变Activity在当前任务堆栈中的顺序
- 退出系统时 如何关闭所有Activity 避免无法退出
- Android中如何关闭所有的Activity
- 安卓学习:如何将一个Activity设置成窗口的样式
- 如何关闭 一个 应用中的所有 Activity
- 【一找客户端】退出应用时,关闭所有activity
- Android源码学习之二-Activity如何管理对话框
- Android源码学习之二-Activity如何管理对话框