AppManager
1.统一应用程序中所有的Activity的栈管理
涉及到activity的添加、删除指定、删除当前、删除所有、返回栈大小的方法
public class AppManager {
private Stack<Activity> activityStack = new Stack<>();
//设置当前类是单例的
private static AppManager appManager = new AppManager();
private AppManager(){}
public static AppManager getInstance(){
return appManager;
}
public void addActivity(Activity activity){
activityStack.add(activity);
}
public void removeActivity(Activity activity){
for(int i = activityStack.size() - 1; i >= 0 ; i--) {
if(activityStack.get(i).getClass().equals(activity.getClass())){
activity.finish();
activityStack.remove(i);
break;
}
}
}
public void removeCurrent(){
// Activity activity = activityStack.get(activityStack.size() - 1);
Activity activity = activityStack.lastElement();
activity.finish();
activityStack.remove(activity);
}
public void removeAll(){
for(int i = activityStack.size() - 1; i >= 0 ; i--) {
activityStack.get(i).finish();
activityStack.remove(i);
}
}
public int size(){
return activityStack.size();
}
}
2.在MainActivity中,将当前的Activity添加到栈管理中:
protected void onCreate(Bundle savedInstanceState) {
//将当前的Activity添加到栈管理中
AppManager.getInstance().addActivity(this);
}
AppManager的更多相关文章
- Android Activity 管理 (AppManager)(非原创)
AppManager 类: /** * 应用程序Activity管理类:用于Activity管理和应用程序退出 * */ public class AppManager { private ...
- 【Android工具类】Activity管理工具类AppManager
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack; import android.app.Activity; i ...
- android应用框架构建------AppManager
体验一些Android应用程序开发的个人总结 当我们开发应用程序.经常有非常多非常多activity,在这一刻,我们需要一个activity堆栈,以帮助管理activity的finish和start. ...
- activity管理类 appManager
程序启动第一个界面类: net.oschina.app.AppStart功能描述:一张图片代码细节描述:一个透明度的动画效果,效果动画完成后自动启动新的Activity(Main) 基本BaseAct ...
- AppManager类,管理Activity和App
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); / ...
- 安装AppManager
http://www.searchvirtual.com.cn/showcontent_66884.htm
- Linux常用获取进程占用资源情况手段
测试环境:Ubuntu14.04 1. 获取进程ID号 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...
- 无法在“EntityFramework”已存在的情况下创建影像复制该文件的解决方案
问题产生的原因:你项目正在生成中你就打开浏览器预览了,导致这个问题解决方案:右击重新生成项目,等生成后再打开 “/”应用程序中的服务器错误. 无法在“EntityFramework”已存在的情况下创建 ...
- 关于Java中枚举Enum的深入剖析
在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java ...
随机推荐
- 【原创】Your Connection is not private
用Chrome打开google等https网站时碰到问题: “your connection is not private”. 后来发现是跟GoAgent的安全证书有关系(我用XX.NETFQ) 解决 ...
- storm_常用命令
1)nimbus:启动nimbus守护进程 storm nimbus 2)supervisor:启动supervisor守护进程 storm supervisor 3)ui ...
- 基于 WiFi ( Wireless Fidelity) 的室内定位技术
系统的拓扑结构 基于信号强度的定位技术(RSSI, Received Signal Strength Indication) 无线信号的信号强度随着传播距离的增加而衰减,接收方与发送方离得越近, 则接 ...
- Spring学习--Spring事务相关速记
数据库事务 事务特性: 原子性,事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做 一致性,在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是处于正确的状态 隔离性, ...
- python使用requests请求的数据乱码
1.首先进入目标网站,浏览器查看源码,找到head标签下面的meta标签,一般meta标签不止一个,我们只需找到charset属性里面的值即可 2.requests请求成功时,设置它的编码,代码如下 ...
- 代码高亮插件——wangHightLighter.js——demo演示
wangHighLighter.js demo 语言: 主题: 转换 说明: wangHightLighter.js是一个可以将代码高亮显示的javascript小插件,支持常用的20多语言. ...
- struts和hibernate整合
程序示例: 1.引入jar包 2.实体对象 Dept.java package com.gqx.entity; import java.util.HashSet; import java.util.S ...
- 利用nginx解决跨域问题
访问我的博客 前言 最近遇到了跨域问题,结合之前[微信支付开发本地接收异步通知回调]的经验,利用 Nginx 实现了跨域. 公司之前为了解决跨域问题,用的是 iFrame,反正对于只做后端的我而言,觉 ...
- Windows x86 下的 静态代码混淆
0x00 前言 静态反汇编之王,毫无疑问就是Ida pro,大大降低了反汇编工作的门槛,尤其是出色的“F5插件”Hex-Rays可以将汇编代码还原成类似于C语言的伪代码,大大提高了可读性.但个人觉得 ...
- Eclipse和Myeclipse的Properties插件(解决properties文件乱码)
资源链接:链接:https://pan.baidu.com/s/13M2ovUUXLfOENFoD17MLng 密码:zvo9 插件安装: 解压后得到features.Plugins两个文件将他们放入 ...