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

四种结束当前的activity方法

Java代码:  
  1. //关闭当前activity方法一
  2. finish();
  3. //关闭当前界面方法二
  4. android.os.Process.killProcess(android.os.Process.myPid());
  5. //关闭当前界面方法三
  6. System.exit(0);
  7. //关闭当前界面方法四
  8. 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的类

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

在每个activity被创建时加上

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

将该activity添加到list中去。

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

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

转_ _android开发中如何结束所有的activity的更多相关文章

  1. android开发中如何结束所有的activity

    每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 //关闭当前activity方法一 finish(); //关闭当前界面方法二 android. ...

  2. 【转】android开发中如何结束所有的activity

    原文网址:http://java--hhf.iteye.com/blog/1826880 每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 //关 ...

  3. 九、Android学习笔记_ Android开发中使用软引用和弱引用防止内存溢出

    在<Effective Java 2nd Edition>中,第6条“消除过期的对象引用”提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象 ...

  4. 敏捷开发中的sprint是什么意思_百度知道

    敏捷开发中的sprint是什么意思_百度知道     敏捷开发中的sprint是什么意思    未成年RB21 | 浏览 4208 次    推荐于2016-02-27 15:19:02     最佳 ...

  5. IOS开发中UI编写方式——code vs. xib vs.StoryBoard

    最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关 ...

  6. highcharts插件使用总结和开发中遇到的问题及解决办法

    这里使用的highchart是2014-01-09从官网下载的版本,版本号是3.0.8, 当过了几天后,发现版本号变成了3.0.9,不由得的感叹highchart的版本更新之快. 在jsp中使用hig ...

  7. PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等

    页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...

  8. 【Swift】IOS开发中自定义转场动画

    在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...

  9. MacOS和iOS开发中异步调用与多线程的区别

    很多童鞋可能对Apple开发中的异步调用和多线程的区别不是太清楚,这里本猫将用一些简单的示例来展示一下它们到底直观上有神马不同. 首先异步调用可以在同一个线程中,也可以在多个不同的线程中.每个线程都有 ...

随机推荐

  1. python设置字体颜色

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信 ...

  2. KMP字符串模式匹配学习笔记

    KMP算法实验 1.编程计算模式串(子串)的next值.2.利用KMP算法在主串中找到模式串的位置. 参考代码:---------int getNexlVal( char * s,  int j)// ...

  3. C语言调试的几种方法

    linux系统下,在不gdb调试的情况下,我们如何解决程序崩溃问题呢?首先想到的就是添加log日志信息,其次还有以下几种方法可以帮助我们分析存在的问题: (一)add2line 程序崩溃时会打出一些崩 ...

  4. MySQL 5.1.73升级为MySQL 5.5.35详解

    一.前言 二.概述 三.安装MySQL 5.1.73 四.升级为MySQL 5.5.35 五.总结 注,测试环境 CentOS 6.4 x86_64,MySQL 版本(5.1.73.5.5.35)目前 ...

  5. lucene 索引合并策略

    在索引算法确定的情况下,最为影响Lucene索引速度有三个参数--IndexWriter中的 MergeFactor, MaxMergeDocs, RAMBufferSizeMB .这些参数无非是控制 ...

  6. 开发成功-cpu-mem监控动态折线图--dom esayui js java

    jsp ------------------------------------------------------------------------------------------- ---- ...

  7. Sublime Text 下配置python

    Sublime Text 2作为一款轻量级的编辑器,特点鲜明,方便使用,而且支持多语言.  一.control+B方式 1. 在工具栏点击Preferences,打开Browse Packages.在 ...

  8. wikioi 1475 m进制转十进制

    /*===================================== 1475 m进制转十进制 题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转 ...

  9. js实现复选框的全选、全不选、反选

    js中实现复选框的全选,全不选以及反选,分为两种情况: (1)选中“请选择”前面的复选框实现全选,不选中“请选择”前面的复选框实现全不选 <!DOCTYPE html PUBLIC " ...

  10. HBase(一): c#访问hbase组件开发

    HDP2.4安装系列介绍了通过ambari创建hbase集群的过程,但工作中一直采用.net的技术路线,如何去访问基于Java搞的Hbase呢? Hbase提供基于Java的本地API访问,同时扩展了 ...