我们退出Activity可以调用:finish(),system(0),但是这些都只是单单退出单个Activity

也有人会说,直接把进程杀死,这些做法都不是很可取,其实我们翻看api可以发现,Activity

都是放入stack中管理,我们只要把stack清空了,不就完全退出了嘛。要对Activity的stack

管理,就需要了解launchMode的四种状态,这里就不多说了,自己看看api。

我们就利用android:launchMode="singleTop",当该Activity在栈顶时,会清空它下面的Activity

然后把当前Activity finish掉,就完全关闭了。

实例 A,B,C,D四个Activity;A作为入口,在manifest.xml设置android:launchMode="singleTop"

其他几个不需要设置。启动顺序 A->B->C->D

这里我们在D窗口打开A窗口时在Intent中直接加入标志Intent.FLAG_ACTIVITY_CLEAR_TOP,

再次开启A时将会清除该进程空间的所有Activity。

在D中使用下面的代码:
Intent intent = new Intent(); 
intent.setClass(D.this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
startActivity(intent)
finish();

A中代码:

protected void onNewIntent(Intent intent) {super.onNewIntent(intent);//退出if ((Intent.FLAG_ACTIVITY_CLEAR_TOP & intent.getFlags()) != 0) {finish();
}
}

因为A是android:launchMode="singleTop"不会调用oncreate(),而是响应onNewIntent()

这时候判断Intent.FLAG_ACTIVITY_CLEAR_TOP,然后把A finish()掉。

B,C也被清掉了,因为A中是android:launchMode="singleTop",栈下面的都被清理。

栈中A,B,C,D全部被清理。所以整个程序退出了。

android开发完全退出activity相关推荐

  1. android开发全然退出activity

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

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

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

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

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

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

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

  5. android 开发 - 结束所有activity

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

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

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

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

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

  8. android四大组件之Activity(三)

    这是一篇关于android开发四大组件Activity部分的笔记之一,其中主要介绍Activity的生命周期以及一些实例等内容.这里所用到的开发工具是Android4.1. 目录 14.Activit ...

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

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

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

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

最新文章

  1. 【报告】2021物联网行业研究报告(附PDF下载)
  2. [WinError 10038] 在一个非套接字上尝试了一个操作
  3. python元类、反射及双线方法
  4. java 复选框怎么用_Java Swing公开课|Java Swing的复选框组件怎么用,看完这篇文章你一定就会了...
  5. netty冲突 play sbt_尝试添加MySQL / slick后,Strange Play Framework 2.2异常
  6. 网络通信 route(公司局域网配置)
  7. Angular2 指令
  8. resultMap标签与resultType的异同
  9. Filter过滤器实现登录权限拦截
  10. 三维坐标系旋转——旋转矩阵到旋转角之间的换算
  11. 【Docker】给运行的容器添加端口映射
  12. 如何实现数据持久性保障机制
  13. 年轻人如何去有效的学习(很好的鸡汤,一语惊醒梦中人)
  14. ntfs linux,NTFS-3G (简体中文)
  15. linux下光模块信息命令,华为交换机查看光模块信息命令
  16. CTFhub备份文件下载
  17. math.h数学函数
  18. 电脑使用技巧 (C盘空间扩容)
  19. 树莓派u盘启动并扩容
  20. JavaScript百炼成仙 1.14 秀

热门文章

  1. 主表和附表的关联关系,普通字段就可以实现为什么还要有主键外键?之间有什么关系
  2. Unity基础-图形渲染
  3. 【python 类】【部分转发】设计模式 -- 责任链模式 (类之间的联动)
  4. Java_学生信息管理系统——数组版——初次编写
  5. 001_JavaScript数组常用方法总结及使用案例
  6. 第二章:WebDriver 打开Firefox浏览器 和 Chrome 浏览器
  7. dubbo 运行过程
  8. WEBFORM--第一讲
  9. redhat7 防火墙设置
  10. treeview实例