package com.chinaCEB.cebActivity.utils;import java.util.Stack;import android.app.Activity;
import android.content.Context;/*** activity堆栈式管理** @author FireAnt(http://my.oschina.net/LittleDY)* @created 2014年10月30日 下午6:22:05**/
public class AppManager {private static Stack<Activity> activityStack;private static AppManager instance;private AppManager() {}/*** 单一实例*/public static AppManager getAppManager() {if (instance == null) {instance = new AppManager();}return instance;}/*** 添加Activity到堆栈*/public void addActivity(Activity activity) {if (activityStack == null) {activityStack = new Stack<Activity>();}activityStack.add(activity);}/*** 获取当前Activity(堆栈中最后一个压入的)*/public Activity currentActivity() {Activity activity = activityStack.lastElement();return activity;}/*** 结束当前Activity(堆栈中最后一个压入的)*/public void finishActivity() {Activity activity = activityStack.lastElement();finishActivity(activity);}/*** 结束指定的Activity*/public void finishActivity(Activity activity) {if (activity != null && !activity.isFinishing()) {activityStack.remove(activity);activity.finish();activity = null;}}/*** 结束指定类名的Activity*/public void finishActivity(Class<?> cls) {for (Activity activity : activityStack) {if (activity.getClass().equals(cls)) {finishActivity(activity);break;}}}/*** 结束所有Activity*/public void finishAllActivity() {for (int i = 0, size = activityStack.size(); i < size; i++) {if (null != activityStack.get(i)) {//finishActivity方法中的activity.isFinishing()方法会导致某些activity无法销毁//貌似跳转的时候最后一个activity 是finishing状态,所以没有执行//内部实现不是很清楚,但是实测结果如此,使用下面代码则没有问题// find by TopJohn//finishActivity(activityStack.get(i));activityStack.get(i).finish();//break;}}activityStack.clear();}/*** 获取指定的Activity** @author kymjs*/public static Activity getActivity(Class<?> cls) {if (activityStack != null)for (Activity activity : activityStack) {if (activity.getClass().equals(cls)) {return activity;}}return null;}/*** 退出应用程序*/public void AppExit(Context context) {try {finishAllActivity();// 杀死该应用进程android.os.Process.killProcess(android.os.Process.myPid());System.exit(0);} catch (Exception e) {}}
}

堆栈式管理就是好,我想后退,不用sb的finish了。而且更多的方便。

activity堆栈式管理相关推荐

  1. Android-activity堆栈及管理

    本示例演示如何通过设置Intent对象的标记,来改变当前任务堆栈中既存的Activity的顺序. 1. Intent对象的Activity启动标记说明: FLAG_ACTIVITY_BROUGHT_T ...

  2. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  3. Android Activity生命周期管理

    http://blog.csdn.net/thl789/article/details/6628463 本文描述Android中Activity的状态,Activity的状态转换,从而总结了Activ ...

  4. Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  5. Android apk动态加载机制的研究(二):资源加载和activity生命周期管理

    转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了 ...

  6. 堆栈式 CMOS、背照式 CMOS 和传统 CMOS 传感器的区别

    光电效应 光电效应的现象是赫兹(频率的单位就是以他命名的)发现的,但是是爱因斯坦正确解释的.简单说,光或某一些电磁波,照射在某些光敏物质会产生电子,这就是光电效应. 这就将光变为了电,光信号的改变会带 ...

  7. 三十四、段页式管理方式

    一.知识总览 二.分页.分段的优缺点分析 分页管理: 优点:内存空间利用率高,不会产生外部碎片,只会有少量的页内碎片. 缺点:不方便按照逻辑模块实现信息的共享和保护 分段管理: 优点:很方便按照逻辑模 ...

  8. Linux 操作系统原理 — 内存 — 页式管理、段式管理与段页式管理

    目录 文章目录 目录 前文列表 页式管理 快表 多级页表 基于页表的虚实地址转换原理 应用 TLB 快表提升虚实地址转换速度 页式虚拟存储器工作的全过程 缺页中断 为什么 Linux 默认页大小是 4 ...

  9. 盛大游戏式管理,什么时候能管理游戏式?^o^

    2008年7月5日的<IT经理世界>编者的话――<中国式管理的希望>写道"这种以人为中心的管理将更多的关注员工的兴趣.情绪.动机和感受,不可避免地与一个国家的文化背景 ...

最新文章

  1. mysql data ibdata1_database - 如何在MySQL中收缩/清除ibdata1文件
  2. TSNE Understanding
  3. 使用Flask-Mail发送邮件
  4. android drawpath大小,Android Path和PathMeasure
  5. Spark 1.4连接mysql诡异的问题及解决
  6. oracle如何获取异常,Oracle专题13之异常错误处理
  7. django foreign key 自动加_id问题
  8. 2021 年 9 月 TIOBE 指数 C# 同比增长突破 1.2%
  9. 删除字符串的前置或者后置空格
  10. java8 lambda map排序_Java8新特性第3章(Stream API)
  11. mybatis的详解
  12. Git简洁教程:本地项目如何与GitHub互连
  13. 30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)
  14. H3C交换机配置简单教程
  15. 苹果系统中英文输入法切换_苹果输入法怎么切换_苹果系统如何切换输入法-win7之家...
  16. 突破现实的墙 | 众猎创始人Tony Guo和他的猎界风云
  17. java--for循环的三种写法
  18. 【无标题】写了一个半小时才写这么一点,是不是我能力不行呀?而且暗亮边框还显示不出来,害
  19. [Kafka] Kafka基本架构
  20. IC学习笔记20——VCS的使用(二)VCS仿真基础知识

热门文章

  1. 记录一下python-opencv-ArUco-Apriltag
  2. 记录一下HALCON检测螺钉是否存在
  3. jsr223 java_JSR223 Java使用脚本引擎动态修改业务逻辑
  4. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版
  5. 学生成绩管理网站之——课程视频分享实现
  6. swift3.0 渐变色
  7. Spring AOP动态代理-切面
  8. [唐诗]入朝洛堤步月-上官仪
  9. wordpress给后台文章列表增加自定义排序栏
  10. parents()和parent()