每一个activity都有自己的生命周期,被打开了最终就要被关闭。

四种结束当前的activity方法

 1     //关闭当前activity方法一
 2         finish();
 3
 4     //关闭当前界面方法二
 5         android.os.Process.killProcess(android.os.Process.myPid());
 6
 7     //关闭当前界面方法三
 8         System.exit(0);
 9
10     //关闭当前界面方法四
11         this.onDestroy();  

但如果已经启动了四个Activity:A,B,C和D,

在D Activity里,想再启动一个Activity B,但不变成A,B,C,D,B,而是希望是A,B,而且B上的数据依然保留

Java代码  
  1. Intent intent = new Intent();
  2. intent.setClass(TableActivity.this, FrameActivity.class);
  3. intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);//设置不要刷新将要跳到的界面
  4. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//它可以关掉所要到的界面中间的activity
  5. startActivity(intent);

如果已经启动了四个Activity:A,B,C和D,

在D Activity里,想再启动一个Activity B,但不变成A,B,C,D,B,而是希望是A,B,而且B上的数据不保留

Java代码  
  1. Intent intent = new Intent();
  2. intent.setClass(TableActivity.this, FrameActivity.class);
  3. intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//它可以关掉所要到的界面中间的activity
  4. startActivity(intent);

如果已经启动了四个Activity:A,B,C和D,在D Activity里,    /想再启动一个 Activity B,但不变成A,B,C,D,B,而是希望是A,C,D,B,则可以像下面写代码:

Java代码  
  1. Intent intent1 = new Intent(TableActivity.this, FrameActivity.class);
  2. intent1.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
  3. startActivity(intent1);

如果已经启动了四个Activity:A,B,C和D,在D Activity里,想要一次性关闭所有的activity

创建一个专门用来处理activity的类

 1     package com.layout;
 2
 3     import java.util.LinkedList;
 4     import java.util.List;
 5     import android.app.Activity;
 6     import android.app.Application;
 7     /**
 8      * 一个类 用来结束所有后台activity
 9      * @author Administrator
10      *
11      */
12     public class SysApplication extends Application {
13         //运用list来保存们每一个activity是关键
14         private List<Activity> mList = new LinkedList<Activity>();
15         //为了实现每次使用该类时不创建新的对象而创建的静态对象
16         private static SysApplication instance;
17         //构造方法
18         private SysApplication(){}
19         //实例化一次
20         public synchronized static SysApplication getInstance(){
21             if (null == instance) {
22                 instance = new SysApplication();
23             }
24             return instance;
25         }
26         // add Activity
27         public void addActivity(Activity activity) {
28             mList.add(activity);
29         }
30         //关闭每一个list内的activity
31         public void exit() {
32             try {
33                 for (Activity activity:mList) {
34                     if (activity != null)
35                         activity.finish();
36                 }
37             } catch (Exception e) {
38                 e.printStackTrace();
39             } finally {
40                 System.exit(0);
41             }
42         }
43         //杀进程
44         public void onLowMemory() {
45             super.onLowMemory();
46             System.gc();
47         }
48     }
49        

在每个activity被创建时加上

Java代码  
  1. SysApplication.getInstance().addActivity(this);

将该activity添加到list中去。

当你想关闭时,调用SysApplication的exit方法

Java代码  
  1. //关闭整个程序
  2. SysApplication.getInstance().exit();

转:http://java--hhf.iteye.com/blog/1826880

转载于:https://www.cnblogs.com/lihaibo-Leao/p/3529500.html

android 开发 - 结束所有activity相关推荐

  1. android开发中的 Activity 与 Context 区别与联系

    Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...

  2. Android开发:利用Activity的Dialog风格完成弹出框设计

    转:http://www.linuxidc.com/Linux/2011-08/41933.htm 在我们使用Dialog时,如果需要用到很多自己设计的控件,虽然可以让弹出框显示出我们需要的界面,但却 ...

  3. Android开发--Service和Activity通过广播传递消息

    Android的Service也运行在主线程,但是在服务里面是没法直接调用更改UI,如果需要服务传递消息给Activity,通过广播是其中的一种方法: 一.在服务里面发送广播 通过intent传送数据 ...

  4. android开发全然退出activity

    我们退出Activity能够调用:finish(),system(0),可是这些都仅仅是单单退出单个Activity 也有人会说,直接把进程杀死,这些做法都不是非常可取.事实上我们翻看api能够发现. ...

  5. 【Android开发】 在Activity中使用Menu

    在Activity中使用Menu Android给我们提供了一种方式,可以展示菜单的同时,还能不占用任何的屏幕空间 新建xml 首先在res目录下新建一个menu文件夹,右键res目录 - New - ...

  6. android开发学习——关于activity 和 fragment在toolbar上设置menu菜单

    在做一个项目,用的是Android Studio 系统的抽屉源码,但是随着页面的跳转,toolbar的title需要改变,toolbar上的menu菜单也需要改变,在网上找了好久,也尝试了很多,推荐给 ...

  7. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  8. Android 开发艺术探索 看不懂对着书敲慢慢理解,设计模式之禅总结,平时记录的笔记,3w多次字防止丢失,留存。

    知识点1: 1.子线程为什么不允许访问ui因为android中的ui控件不是线程安全的. 2.为什么不给Ui加上锁的机制,第一点 会让ui访问的逻辑变得复杂,其次降低ui访问的效率. 3.List转化 ...

  9. android中的mvp模式怎么定义,详解MVP模式在Android开发中的应用

    一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Mode ...

最新文章

  1. linux文件系统分隔符,Linux的哲学思想和文件系统
  2. 利用Python进行简单的图像识别(验证码)
  3. jar包在windows后台运行,通过.bat文件
  4. 电脑上交计算机作业怎么打开,上海交大计算机第一次作业-20210711011739.docx-原创力文档...
  5. 【clickhouse】docker安装clickhouse后本地无法连接
  6. 网络安全与管理精讲视频笔记10-Windows隧道模式IPSec配置实验演示
  7. Python 调用IDM下载器
  8. JPA注解@Enumerated映射枚举字段
  9. selenium不定位元素直接操作键盘之Keys.CONTROL
  10. 中国高端IC封装市场调查分析与投资趋势研究报告2022-2028年
  11. android 微信自动添加好友 项目开源
  12. 【苹果相册推】群发安装软件设备推送通知SSL允许证
  13. 那些黑科技感爆棚的可视化大屏,是怎么做出来的?模板直接套用
  14. 最新的 iPad开发项目 - Fotoboard for iPad
  15. 用latex排版中的对象旋转问题
  16. 漏洞复现----11、GlassFish任意文件读取
  17. python 如何提取 word 内的图片
  18. 2.4 矩阵的特征值与特征向量
  19. UE4让物体始终朝向摄像机(二)—RInterp To用法
  20. 计算机房挨着音乐教室用英语怎么说,四年级下册英语期末复习资料

热门文章

  1. 【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个
  2. php pathinfo()函数
  3. .NET中的DES对称加密
  4. sqlserver 时间递增循环
  5. FreeBSD之netgraph简要解析
  6. GridView常用代码 (转)
  7. 平均值 oj 山东科技大学 c 语言作业
  8. resnet网络结构_ResNet网络详细解析(超详细哦)
  9. 搜狗浏览器收藏夹在哪_chrome谷歌浏览器收藏夹在哪_chrome收藏夹在电脑什么位置...
  10. Mac上显示出.m2文件夹并将IDEA中的Maven修改为阿里云镜像