堆栈管理器

2023-11-02

  1. (转:http://blog.csdn.net/vipzjyno1/article/details/25423543)
  2. public class StackManager {  
  3.     /** 
  4.      * Stack 中对应的Activity列表  (也可以写做 Stack<Activity>) 
  5.      */  
  6.     private static Stack mActivityStack;  
  7.     private static StackManager mInstance;  
  8.   
  9.     /** 
  10.      * @描述 获取栈管理工具 
  11.      * @return ActivityManager 
  12.      */  
  13.     public static StackManager getStackManager() {  
  14.         if (mInstance == null) {  
  15.             mInstance = new StackManager();  
  16.         }  
  17.         return mInstance;  
  18.     }  
  19.   
  20.     /** 
  21.      * 推出栈顶Activity 
  22.      */  
  23.     public void popActivity(Activity activity) {  
  24.         if (activity != null) {  
  25.             activity.finish();  
  26.             mActivityStack.remove(activity);  
  27.             activity = null;  
  28.         }  
  29.     }  
  30.   
  31.     /** 
  32.      * 获得当前栈顶Activity 
  33.      */  
  34.     public Activity currentActivity() {  
  35.         //lastElement()获取最后个子元素,这里是栈顶的Activity  
  36.         if(mActivityStack == null || mActivityStack.size() ==0){  
  37.             return null;  
  38.         }  
  39.         Activity activity = (Activity) mActivityStack.lastElement();  
  40.         return activity;  
  41.     }  
  42.   
  43.     /** 
  44.      * 将当前Activity推入栈中 
  45.      */  
  46.     public void pushActivity(Activity activity) {  
  47.         if (mActivityStack == null) {  
  48.             mActivityStack = new Stack();  
  49.         }  
  50.         mActivityStack.add(activity);  
  51.     }  
  52.   
  53.     /** 
  54.      * 弹出指定的clsss所在栈顶部的中所有Activity 
  55.      * @clsss : 指定的类  
  56.      */  
  57.     public void popTopActivitys(Class clsss) {  
  58.         while (true) {  
  59.             Activity activity = currentActivity();  
  60.             if (activity == null) {  
  61.                 break;  
  62.             }  
  63.             if (activity.getClass().equals(clsss)) {  
  64.                 break;  
  65.             }  
  66.             popActivity(activity);  
  67.         }  
  68.     }  
  69.       
  70.     /** 
  71.      * 弹出栈中所有Activity 
  72.      */  
  73.     public void popAllActivitys() {  
  74.         while (true) {  
  75.             Activity activity = currentActivity();  
  76.             if (activity == null) {  
  77.                 break;  
  78.             }  
  79.             popActivity(activity);  
  80.         }  
  81.     }  
  82. }  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

堆栈管理器 的相关文章

随机推荐

  • 如果线上遇到了OOM,该如何解决?

    常说要对生产环境保持敬畏之心 快速解决问题也是一种敬畏的表现 今天就和大家聊聊 Java 进程触发了 OOM 后如何排查 为什么会 OOM OOM 全称 Out Of Memory 表示内存耗尽 当 JVM 因为没有足够的内存来为对象分配空
  • Latex: 使 tabular 居中

    参考 How to center the table in Latex Latex 使 tabular 居中 解决方法1 centering begin tabular end tabular 解决方法2 begin center begi
  • opencv和python的区别,Opencv、libopencv、Python-Opencv的区别

    最近在树莓派上安装opencv 准备用于深度学习方面的内容 结果总是在安装的时候傻傻分不清这三者的区别 总是傻瓜式的按照百度上的步骤安装 OpenCV is computer vision a library written using h
  • blob 在线解码_roon、NAS图文全攻略

    前几天 eric已经发表了欧博旗舰RDS1电池数字界面转盘 旗舰RDB1电池解码器开箱篇 开箱篇 试听欧博旗舰RDS1电池数字界面转盘 旗舰RDB1电池解码器 支持roon Tidal MQA 本地播放评论篇 开盖照 本地播放评论篇 试听欧
  • HCIP华为认证网络工程师多久能够考过呢

    hcip华为认证网络工程师多久能考过
  • HP服务器RAID配置 两种方法

    其实所有阵列的配置方法都大同小异 只要知道了阵列的原理 有操作过一种服务器 其它品牌的服务器操作方法类似 下面以DL380G7 DL580G7 和DL388G9创建RAID的方法 放在博客上 方便查询 DL380G7 DL580G7 方法一
  • Oracle 忘记用户名和密码的解决办法

    很久以前装了Oracle 今天终于下决心要学一学了 结果一上午的时间就贡献给如何连接数据库上了 忘记了安装时设置的用户名和密码怎么办 查了下网上的资料 终于解决了 方法一 首先进入sqlplus 进入的方式有两种 一种是通过cmd命令台输入
  • Windos平台,官方编译LibYuv详细教程-Ninja编译

    Windos平台 官方编译LibYuv详细教程 Ninja编译 前言 阅读可有效节约您的时间 编译教程 前言 阅读可有效节约您的时间 首先说一下结论 为什么要用ninja编译Libyuv 下面是官方的编译教程 https github co
  • 自动驾驶仿真软件SCANeRstudio(二)场景、仿真、分析

    scaner scenario driver 驾驶员模型 traffic driver virtual driver human driver walker driver 一 动态基础部分 创建场景 1 创建Riviera地形 模式 sim
  • ChatGPT 是什么?

    ChatGPT是一种基于GPT 3 5架构的大型语言模型 由OpenAI公司开发 该模型使用了先进的机器学习技术 可以自动学习并理解自然语言 从而使其能够回答各种问题 生成文本和对话 ChatGPT模型基于GPT 3模型 但是具有更多的参数
  • 把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩

    前言 做数据库sql练习 遇到的此问题 自己第一次写有些复杂 想在网上搜寻下比较简洁高效的写法 但是几乎都是复制粘贴 错误的也在复制粘贴 半天找不到比较高质量的 还是自己写一下吧 建表语句不在此处列出 有更高效简洁的写法 欢迎留言评论 实现
  • Spark SQL 编程初级实践

    1 Spark SQL 基本操作 将下列 JSON 格式数据复制到 Linux 系统中 并保存命名为 employee json id 1 name Ella age 36 id 2 name Bob age 29 id 3 name Ja
  • Navicat 链接虚拟机Mysql 报错:2003-Can't connect to Mysql server on 'xxx' (10060 "Unknown error")

    前言 在首次在本机用Navicat链接VMware win10虚拟机中的Mysql数据库报错 如下 解决方法 一 尝试ping虚拟机ip地址 如果出现链接超时或者是过期的情况 请参考另一篇博客 https blog csdn net ido
  • JavaScript基础语法概念之(数据类型、强制转换、运算符)

    数据类型 数据类型就是字面量的类型 JS的六种数据类型 String 字符串 Number 数值 Boolean 布尔值 Null 空值 Undefined 未定义 Object 对象 引用数据类型 基本数据类型都是单一的值 值与值之间没有
  • 天才少年稚晖君首秀,官宣智元人形机器人!小米最强铁蛋2比狗更狗

    作者 新智元 编辑 新智元 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 新智元导读 昨晚同时发生两件大事 雷军携比狗更狗的铁蛋2惊艳登场 稚晖君发出创业首秀预告 人形机器人 远征 A1 3天后亮相 放弃百万年薪从华
  • HTML5 画扇形图

    求评论啊 也写了 一些东西 咋就没人评论一下的呢 HTML5 画扇形图 最近 有个需求 做了个平衡论应用 因为是需要打包成 android 和 ios的 用了phonegap 技术 就是直接开发html5 然后直接生成 ios和androi
  • 图片/视频去水印代码(毕业设计)

    图像去水印 去水印代码代码部分 代码学习交流 请私信 摘要 水印是一种常用的保护技术媒体的版权 同时 为了提高水印的丰满度 攻击技术 如去除标记 也得到了关注 以前的水印去除方法需要获得水印标记用户位置或训练多任务网络以无差别地恢复背景 然
  • 几个常用的操作系统进程调度算法

    一 先来先服务和短作业 进程 优先调度算法 1 先来先服务调度算法 先来先服务 FCFS 调度算法是一种最简单的调度算法 该算法既可用于作业调度 也可用于进程调度 当在作业调度中采用该算法时 每次调度都是从后备作业队列中选择一个或多个最先进
  • 4700万人挤爆BOSS直聘服务器?

    来源于 不会笑青年 前两天 看到朋友圈热传的一张图 在这张图上 我们看到一位自称是BOSS直聘员工表示 金九银十是招聘旺季 2023年9月15日10点15分26秒 在线统计超过4700万人在刷BOSS页面 目前服务器超荷载 正在维护 找工作
  • 堆栈管理器

    转 http blog csdn net vipzjyno1 article details 25423543 public class StackManager Stack 中对应的Activity列表 也可以写做 Stack