android Activity管理器

应用场景

管理活动的Activity,可实现将一个activity添加到管理器、得到保存在管理器中的Activity对象、返回管理器的Activity是否为空、关闭所有活动的Activity除了指定的一个之外、移除Activity对象,如果它未结束则结束它、返回管理器中是否包含指定的名字,用于android开发时相当有用,例如我们在开发界面跳转比较频繁、定义android的HOME键、返回键如何跳转页面等项目时非常有用。

代码实现

/*** @ClassName: ActivityTaskManager* @Description: TODO(Activity管理器)* @author lhn* @date 2016-4-15 上午10:34:10*/
public class ActivityTaskManager {// 创建ActivityTaskManagerprivate static ActivityTaskManager activityTaskManager = null;// 创建activity管理Mapprivate HashMap<String, Activity> activityMap = null;/*** @Description:返回Activity管理器的唯一实例对象(采用单例的实现模式)* @return ActivityTaskManager(Activity管理器的唯一实例对象)*/public static synchronized ActivityTaskManager getInstance() {// synchronized方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之前.// 这时,线程获得的是成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,// 当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入.if (activityTaskManager == null) {activityTaskManager = new ActivityTaskManager();}return activityTaskManager;}/*** @Description:向Activity管理器中添加Activity* @param String*            actName(Activity的名称) Activity activity(要存入的Activity)* @return void*/public void addActivity(String actName, Activity activity) {// 先判断是否已经存在这个activityif (!activityMap.containsKey(actName)) {// 没有存在放入该activityactivityMap.put(actName, activity);} else {// 已经存在,则结束要存入的activityactivity.finish();}}/*** @Description 得到保存在管理器中的Activity对象。* @param String*            actName(Activity的名称)* @return Activity*/public Activity getActivity(String name) {return activityMap.get(name);}/*** @Description 返回管理器的Activity是否为空。* * @return 当且当管理器中的Activity对象为空时返回true,否则返回false。*/public boolean isEmpty() {return activityMap.isEmpty();}/*** @Description 返回管理器中Activity对象的个数。* * @return 管理器中Activity对象的个数。*/public int size() {return activityMap.size();}/*** @Description:removeActivity将不用的Activity移除* @param String*            actName(Activity的名称)* @return void*/public void removeActivity(String actName) {// 得到该Activity的实例Activity activity = activityMap.get(actName);// 如果不为null,则结束掉该activityif (activity != null)activity.finish();// 在activityMap中移除activityMap.remove(actName);}/*** @Description:finishAll结束掉所有Activity* @return void*/public void finishAll() {// 遍历所有的Activity找到后执行finishfor (String actName : activityMap.keySet()) {Activity activity = activityMap.get(actName);if (!activity.isFinishing()) {activity.finish();}}// 完全退出app,否则还有进程在后台System.exit(0);}}

android Activity管理器相关推荐

  1. Android布局管理器-使用LinearLayout实现简单的登录窗口布局

    场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...

  2. 移动开发技术(Android)——实验2 Android布局管理器的应用

    移动开发技术(Android)--实验2 Android布局管理器的应用 一.实验目的 二.实验内容 (一)创建一个Android项目,名称为"shiyan0201_专业_×××" ...

  3. Android布局管理器-使用TableLayout表格布局管理器实现简单的用户登录页面

    场景 Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  4. Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方形以及前景照片

    场景 Android布局管理器-使用LinearLayout实现简单的登录窗口布局: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details ...

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

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

  6. android sdk无法启动不了,无法启动Android SDK管理器

    我无法启动android sdk管理器,我已经正确检查了sdk,jdk路径但无法解决此问题.当我开始在eclipse CONSOL Android SDK中管理器显示这些行:无法启动Android S ...

  7. android 固件管理器,刷机精灵(原Android固件管理器桌面版)

    详细介绍 刷机精灵的前身是固件管理器桌面版.目前刷机精灵已全面重写,它将是一个更为温馨易用和强大的刷机工具.待近期开发完毕后即可开始发布测试,届时希望各位机友持续给力哦! 刷机精灵是一款运行于PC端的 ...

  8. 【android编程】 第三讲-Android布局管理器

    android编程 第三讲 Android布局管理器 文章目录 android编程 第三讲 Android布局管理器 约束布局管理器ConstraintLayout 线性布局管理器LinearLayo ...

  9. android开发4:Android布局管理器1(线性布局,相对布局RelativeLayout-案例)

    控件类概述 View 可视化控件的基类 属性名称 对应方法 描述 android:background setBackgroundResource(int) 设置背景 android:clickabl ...

最新文章

  1. 两个iphone怎么大量传照片_手机照片删除了怎么恢复?这两个简单方法一看就会,还不收藏?...
  2. biosrecovery什么意思_BIOS中的每个中文是什么意思
  3. Spring Boot 1:Introduction
  4. Nginx只允许域名访问网站,禁止使用IP 访问80,443端口
  5. 【转】每天一个linux命令(28):tar命令
  6. php 中文字符串长度_php中计算中文字符串长度、截取中文字符串的函数代码
  7. atitit.信息安全的控制总结o7
  8. 按发动机排量征收汽车消费税是不合理的,应该按燃烧室容积征税
  9. 飞桨黑客马拉松线上收官,线下HACK Together,继续COOL
  10. 1863: Dinner
  11. GNSS观测方程及线性组合
  12. w7系统桌面没有计算机图标不见了,桌面上我的电脑图标不见了怎么办
  13. 记录设置VSCode加粗字体
  14. openjudge 1.6.2 陶陶摘苹果
  15. JavaScript中的escape() 函数
  16. 2009年 奥巴马胜选演说
  17. 85 Operations Rules to Live By
  18. 【UCIe】UCIe Standard 256B Flit for PCIe 6.0 vs. PCIe 6.0 Flit
  19. Java工程师的职业规划,java迭代器实现原理
  20. 用到zlib库的程序运行时报错:无法定位程序输入点createfile2于动态链接库KERNEL32.DLL上

热门文章

  1. 世界元宇宙大会—李伯虎院士主旨报告:工业元宇宙模式、技术与应用初探
  2. 指针练习——MyMax
  3. 企业财务制度三---会计报表格式(转载)
  4. TKDE 2023 | 交叉学科项目申请书学科代码生成
  5. Java 静态代码检查工具及其原理
  6. 三相整流器移相触发电路的整体FPGA设计
  7. ofdm系统matlab仿真论文,OFDM通信系统分析及其Simulink仿真
  8. 7-10 公路村村通 prim算法
  9. 大话腾讯App性能测试工具GT
  10. windows删除远程桌面连接记录 | 历史IP记录