每一个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. JavaScript判断IE各版本最完美解决方案

    https://github.com/nioteam/jquery-plugins/issues/12 jQuery在1.9版本之前,提供了一个浏览器对象检测的属性$.browser,使用率极高.但是 ...

  2. PosPal银豹收银系统

    http://pospal.cn/pc.html 注册公司的地址,便宜的快法务 http://www.kuaifawu.com/

  3. Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

    1. Mesos简介 1.1 Mesos Apache Mesos 是一个分布式系统的管理软件,对集群的资源进行分配和管理. Mesos主要由以下几部分组成: Master: 管理各Slave节点 S ...

  4. JSBinding / Run Samples

    This document shows you how to run JSBinding 2048 sample in Editor. First of course, create an empty ...

  5. PHP-通过strace定位故障原因

    俗话说:不怕贼偷,就怕贼惦记着.在面对故障的时候,我也有类似的感觉:不怕出故障,就怕你不知道故障的原因,故障却隔三差五的找上门来. 十一长假还没结束,服务器却频现高负载,Nginx出现错误日志: co ...

  6. BP神经网络——交叉熵作代价函数

    Sigmoid函数 当神经元的输出接近 1时,曲线变得相当平,即σ′(z)的值会很小,进而也就使∂C/∂w和∂C/∂b会非常小.造成学习缓慢,下面有一个二次代价函数的cost变化图,epoch从15到 ...

  7. python字符串关键点总结

    python字符串关键点有下面几点: 1.一些引号分隔的字符 你可以把字符串看出是Python的一种数据类型,在Python单引号或者双引号之间的字符数组或者连续的字符集合.在python中最常用的引 ...

  8. linux 安装phpMyAdmin

    1. 首先安装 php mysql  nginx 2. 下载phpMyadmin wget  http://sourceforge.net/projects/phpmyadmin/files/phpM ...

  9. Cg Programming/Vertex Transformations

    https://en.wikibooks.org/wiki/Cg_Programming/Vertex_Transformations

  10. TKinter之输入框

    输入框是 Entry,应用程序要取得用户的信息,输入框是必不可少的. 输入框比较重要的一个函数: get:返回值即输入框的内容 比如e是一个输入框,e['show']='*'就变成了密码框 小例子:用 ...