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

四种结束当前的activity方法

  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上的数据依然保留

  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上的数据不保留

  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,则可以像下面写代码:

  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. 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被创建时加上

  1. SysApplication.getInstance().addActivity(this);

将该activity添加到list中去。

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

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

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

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

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

  2. 转_ _android开发中如何结束所有的activity

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

  3. android开发中关于继承activity类中方法的调用

    android开发中关于继承activity类中的函数,不能在其他类中调用其方法. MainActivity.java package com.example.testmain; import and ...

  4. Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}

    Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi ...

  5. Android 开发中三种多线程

    在开发工程中线程可以帮助我们提高运行速度,Android开发中我知道的线程有四个一个是老生长谈的Thread,第二个是asyncTask,第三个:TimetTask,第四个是Looper,四个多线程各 ...

  6. Intent 对象在 Android 开发中的应用

    转自(http://www.ibm.com/developerworks/cn/opensource/os-cn-android-intent/) Android 是一个开放性移动开发平台,运行在该平 ...

  7. Android开发中的输入合法性检验

    Why ? 合法性检查对于程序的健壮性具有重要作用.在Android开发中,良好的合法性检查设计机制可以使程序更加清晰,产生bug更少,交互更加友好. What ? 合法性检查的目的在于确定边界.对于 ...

  8. Android开发中的问题及相应解决(持续更新)

    最近博客写的少了,以后还得经常更新才行. ------------------------------------------------------------ 1.特定业务需求下try cath ...

  9. Android开发中Bundle用法包裹数据(转)

    Android开发中Bundle用法包裹数据 Bundle的经典用法,包裹数据放入Intent中,目的在于传输数据. SDK 里是这样描述: A mapping from String values ...

随机推荐

  1. 【转】如何设置Android软键盘的默认不弹出?

    在开发Anroid的时候,当你打开一个界面的时候,屏幕的焦点会自动停留在第一个EditText中,Android的软键盘默认会自动弹出,用户第一眼连界面都没有看清楚,软键盘就弹出来了,这就影响到了用户 ...

  2. android编程常见问题-No Launcher activity found!

    新手编程常见的问题: 问题表现: console提示:No Launcher activity found! The launch will only sync the application pac ...

  3. 1070: [SCOI2007]修车 - BZOJ

    Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使 ...

  4. Codeforces Beta Round #10 D. LCIS

    题目链接: http://www.codeforces.com/contest/10/problem/D D. LCIS time limit per test:1 secondmemory limi ...

  5. soft particles

    http://developer.download.nvidia.com/whitepapers/2007/SDK10/SoftParticles_hi.pdf nvdia ------------- ...

  6. 汇编中Enter与Leave指令

    Enter的作用相当==push ebp和mov ebp,esp 这后面两句大家很熟悉吧?函数开始一般都是这两句 Leave的作用相当==mov esp,ebp和pop ebp 而这后面这两句也很常见 ...

  7. 【WCF--初入江湖】11 安全

    11 安全 前言 [1]传输安全  传输安全模式  传输安全与绑定协议   [2]身份验证  身份验证分类  证书  示例:传输安全匿名客户端证书的使用 1. 传输安全     保证信息在传输过程中的 ...

  8. VS2010 MFC DataGrid绑定实例

    VS2010环境下MFC使用DataGrid绑定数据源 参考:http://blog.csdn.net/fddqfddq/article/details/7874706 详细介绍如何在MFC中使用Da ...

  9. UVA 10523 Very Easy!!!(大数据加法、乘法)

    题意:给出N,A,计算i*A^i(i=1~N)的和.1<=N<=30,0<=A<=15. 就是大数据运算,别的没什么,注意细节之处即可. 这题还要注意两个地方: 1.考虑A=0 ...

  10. Asp.Net缓存(1)

    知其根本,方能应用.MSDN上的缓存讲解.先看原来讲解. Asp.Net缓存概述 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能. 在这些情况下 ...