2019独角兽企业重金招聘Python工程师标准>>>

关于怎么一次退出所有Activity网上有很多很多种说法,比如用杀进程的方式:android.os.Process.killProcess(android.os.Process.myPid());这种方式需要添加权限android.permission.KILL_BACKGROUND_PROCESSES; 或者用System.exit(0);退出。

另外一种方法是用ActivityManager的restartPackage()方法;但是我试过了,都没用。。。

还有人说让程序抛出一个异常退出,这种严重影响用户体验的做法我们是极力不推荐的。还有别的方法,如退出的时候发广播通知所有Activity等等。

个人比较推荐的一种方法是自定义一个Activity管理器,来管理所有已打开的Activity,要退出的时候再通过这个管理器来退出所有Activity,经验证,这种方法是可行的,而且效果很好。

新建一个Activity管理类:

public class ActivityCollector {public static List<Activity> activities = new ArrayList<Activity>();public static void addActivity(Activity activity) {activities.add(activity);}public static void removeActivity(Activity activity) {activities.remove(activity);}public static void finishAll() {for (Activity activity : activities) {if (!activity.isFinishing()) {activity.finish();}}}
}

每个activity都加入这个管理类

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityCollector.addActivity(this);setContentView(R.layout.activity_main);initUI();initNetwork();}

当要退出程序的时候

private long exitTime = 0;@Overridepublic void onBackPressed() {if (System.currentTimeMillis() - exitTime > 2000) {Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {ActivityCollector.finishAll();}}

转载于:https://my.oschina.net/yongqingfan/blog/724696

android 管理activity相关推荐

  1. android管理activity顺序,android activity 六个主要函数以及一些调用顺序

    Android中一个Activity一般都需要实现六个函数: onCreate(), onStart(), onResume(),onPause(),onStop(),onDestroy(). onC ...

  2. Android中Activity的启动流程和组织管理方式(Backstack、Task)

    前言: Android对Activity的组织管理会引入一些名词概念术语,像Stack.Task等,本文会做简单介绍.Activity的启动.切换以及组织管理会受不同的配置和属性的影响,本文会简单介绍 ...

  3. Android doc |Getting Started|部分 转载 --管理Activity生命周期

    原文 https://developer.android.com/training/basics/activity-lifecycle/index.html 原文被部分改动 管理Activity生命周 ...

  4. 大叔也说Xamarin~Android篇~Activity之间传递数组

    大叔也说Xamarin~Android篇~Activity之间传递数组 原文:大叔也说Xamarin~Android篇~Activity之间传递数组 我们在开发应用程序时,不可能只使用一个Layout ...

  5. 006 Android之Activity

    文章目录 四大组件之Activity Activety概述 Activity的响应事件 Activity之间的数据传递 数据传递实例 Activity的生命周期 Activity声明周期总结 Acti ...

  6. Android的Activity生命周期模拟程序及解析

    当Activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理.当前活动的Activity位于栈顶.随着不同应用的运行,每个Activity都有可能从活动 ...

  7. 【Android】Activity的四种launchMode

    转自:http://blog.csdn.net/liuhe688/article/details/6754323 合抱之木,生於毫末:九層之台,起於累土:千里之行,始於足下.<老子> 今天 ...

  8. Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析

    [工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处.尊重劳动成果] 1 背景 之所以写这一篇博客的原因是由于之前有写过一篇<Android应用setCont ...

  9. Android笔记:Activity

    1.Android可视化界面结构:     一个Android应用的可视化界面最底层是Activity,在他之上是一个Window对象,在window之上通常是布局容器,再上面才是用户直接交互的组件( ...

最新文章

  1. Mybatis分页插件 - 示例
  2. 任正非说到做到:华为正与美企谈判,授权转让5G技术
  3. 一次二次开发中的经验与教训(二)
  4. MapReduce实例(数据去重)
  5. 《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript
  6. ssl1761-城市问题【图论,最短路,Dijkstra】
  7. ios沙箱模式开启_iOS沙盒篇
  8. Windows 下音频数据采集和播放
  9. Java BigDecimal应用
  10. python算法之归并排序
  11. windows 下使用 MinGW + msys 编译 ffmpeg
  12. sql server 2012 复制数据库向导出现TransferDatabasesUsingSMOTransfer()异常
  13. [BZOJ1031] [JSOI2007] 字符加密Cipher (后缀数组)
  14. mysql分页下表_有关Mysql分表分页问题
  15. 百度 bos php,Thinkphp5对接百度云对象存储 BOS(代码示例)
  16. 二叉搜索树的模拟及其实现(c++)
  17. 学计算机物理去戴维斯还是伦斯勒理工学院好,为什么伦斯勒理工学院评价那么高?...
  18. 第二讲:云分类及服务模式
  19. 实战分享:USB PCB布线经验教训!
  20. bootstrap 样式下 Se7en 模板使用(1)操作提示信息框

热门文章

  1. git 忽略文件提交的几种姿势
  2. nginx自定义日志
  3. nginx简单的操作
  4. linux内存一直占满问题
  5. jQuery LigerUI 使用教程入门篇
  6. 计算机辅助初中英语教学,计算机辅助初中英语阅读教学的-研究.pdf
  7. DDD领域模型、贫血模型、充血模型概念总结
  8. 会动的图解 (二) 怎么让goroutine跑一半就退出?
  9. Go语言的IO库那么多,我该怎么选?
  10. Laravel核心解读--Contracts契约