程序如果启动太多的Activity,叠在一起,想要立刻退出程序,需要连续点击多次的Back键,太麻烦了,按Home键只会将程序挂起,并没有退出程序,这时候我们该怎么办呢?

解决思路:

只需要用一个专门的集合类对所有的活动进行管理就可以了,新建一个 ActivityCollector类作为活动管理器,代码如下:

//活动管理器
public class ActivityCollector {//通过一个List来暂存活动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();}}}
}

在活动管理器中,我们通过一个 List来暂存活动,然后提供了一个 addActivity()方法向 List中添加一个活动,提供了一个 removeActivity()方法从 List中移除活动,最后提供了一个 finishAll()方法将 List中存储的活动全部都销毁掉。

在onCreate()方法里调用addActivity()添加活动。

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

在onDestroy()方法里调用removeActivity()移除活动。

@Override
protected void onDestroy() {super.onDestroy();ActivityCollector.removeActivity(this);
}

或者创建 BaseActivity类作为所有活动的父类:

 public class BaseActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityCollector.addActivity(this);}@Overrideprotected void onDestroy() {super.onDestroy();ActivityCollector.removeActivity(this);}}

其余活动继承就好了...

当然,不管你想在什么地方退出程序,只需要调用 ActivityCollector.finishAll()方法就可以全部移除了~~

Android 活动管理类 ActivityCollector相关推荐

  1. android活动管理器,Android 中管理所有的 Acyivity 活动

    我们在 App 中,通常会打开很多个任务栈,如果我们要退出 App,要点击返回键一步步的退出?有没有更简单的方法吗?答案是有的,我们创建一个 Activity 管理器,来统一管理 Activity. ...

  2. android 管理类,android 线程管理类

    1. 延时任务以及取消延时的应用场景:实时搜索,文字内容变化时候不发送请求,当停止变化指定时间后再发送请求 2. 使用方法: // 回到主线程 MainThreadHelper.runOnUIthre ...

  3. Android允许后台活动管理,安卓基础知识(活动)

    一.四大组件 Android系统四大组件分别是活动(Activity).服务(Service).广播接收器(Broadcast Receiver)和内容提供器(Content Provider).其中 ...

  4. [Android] DownloadManager下载管理类2.3新增API介绍

    从Android 2.3开始新增了一个下载管理类,在SDK的文档中我们查找android.app.DownloadManager可以看到.下载管理类可以长期处理多个HTTP下载任务,客户端只需要给出请 ...

  5. android新闻管理,Android资讯新闻类App(头条、网易等),频道管理集成之数据库存储...

    Android资讯新闻类App(头条.网易等),频道管理集成之数据库存储 发布时间:2019-01-16 19:55, 浏览次数:305 , 标签: Android App * 经常看新闻类的大家都知 ...

  6. Android自己搭建一个实用的SharedPreferences管理类

    前言 在项目中经常会用到SharedPreferences来存储一些配置信息,比如用户的账号信息等.但是当项目大了之后如果还在要使用时再单独创建和使用SharedPreferences就会造成Shar ...

  7. android 应用程序Activity管理类

    import android.annotation.SuppressLint; import android.app.Activity; import android.app.ActivityMana ...

  8. Android Okhttp3 (二) 二次封装请求管理类

    okHttp介绍 通过上面的对比说明,让你不得不做出明智的选择,OkHttp是一个相对成 官网地址:http://square.github.io/okhttp/ 官方API地址:http://m.b ...

  9. android surfaceflinger内存,surfaceflinger中的显示内存管理类

    1.  Android中的应用层每申请一个Surface,最终会通过jni和binder调用到surfaceflinger中,最终会创建一个Layerxxx(Layer,LayerBuffer,Lay ...

最新文章

  1. 使用Python制作酷炫的二维码
  2. Leetcode | Minimum/Maximum Depth of Binary Tree
  3. Mac 设置文件默认打开方式
  4. Oracle获取表字段名,字段类型,字段长度,注释
  5. Javascript中的Document对象详解
  6. ept技术_EPT技术在压载水处理中的运用
  7. GCD简介二:多核心的性能
  8. [转]浅谈MS-SQL锁机制
  9. Windows Phone标准中文字体
  10. 配置 Hadoop 时遇到的一些问题
  11. useCallback()和useMemo()的作用
  12. Qt C++调用Python,解决线程问题,以及GIL锁的处理
  13. Educational Codeforces Round 26 - A, B, C 思维
  14. 快速排序C语言实现 - 源码详解
  15. Ubuntu/Win10双系统安全删除Ubuntu的方法
  16. 平安性格测试题及答案_【中国平安人寿保险平安保险性格测试特别是智商题通过率怎么样】-看准网...
  17. iphone通用设置里显示UDID(tweak)
  18. 第十七章、程序管理与 SELinux 初探
  19. HTML获奖作品,最新潮的24组获奖网页作品欣赏
  20. C++结构体中包含容器,push_back异常

热门文章

  1. WIN工作本装机必备软件清单(持续更新)
  2. LLMs之InstructGPT:《Training language models to follow instructions with human feedback》翻译与解读
  3. ecstore网站换服务器,ECStore系统介绍
  4. OFFICE2003/2007/2010卸载工具
  5. [vuex]状态管理vuex
  6. 给el-table表头加必选星号 - vue篇
  7. 3次冲刺IPO,拉卡拉坎坷上市路
  8. Lucene 索引文件的生成(二十三)之fdxfdtfdm
  9. 慌得一逼,Kafka宕机后不再高可用?吓死宝宝了
  10. java 服务器下载APK文件