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的更多相关文章

  1. Android Activity 管理 (AppManager)(非原创)

    AppManager 类: /** * 应用程序Activity管理类:用于Activity管理和应用程序退出 *  */ public class AppManager {     private ...

  2. 【Android工具类】Activity管理工具类AppManager

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack; import android.app.Activity; i ...

  3. android应用框架构建------AppManager

    体验一些Android应用程序开发的个人总结 当我们开发应用程序.经常有非常多非常多activity,在这一刻,我们需要一个activity堆栈,以帮助管理activity的finish和start. ...

  4. activity管理类 appManager

    程序启动第一个界面类: net.oschina.app.AppStart功能描述:一张图片代码细节描述:一个透明度的动画效果,效果动画完成后自动启动新的Activity(Main) 基本BaseAct ...

  5. AppManager类,管理Activity和App

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); / ...

  6. 安装AppManager

    http://www.searchvirtual.com.cn/showcontent_66884.htm

  7. Linux常用获取进程占用资源情况手段

    测试环境:Ubuntu14.04 1.  获取进程ID号 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...

  8. 无法在“EntityFramework”已存在的情况下创建影像复制该文件的解决方案

    问题产生的原因:你项目正在生成中你就打开浏览器预览了,导致这个问题解决方案:右击重新生成项目,等生成后再打开 “/”应用程序中的服务器错误. 无法在“EntityFramework”已存在的情况下创建 ...

  9. 关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java ...

随机推荐

  1. 九浅一深ThreadLocal

    ThreadLocal的作用.使用示例 ThreadLocal是线程的本地存储,存储在其内的值只能被当前线程访问到,其他线程获取不到,可以存储任意对象.经常用来存储当前线程的一些上下文信息,这样不用通 ...

  2. Scala之隐式转换implicit详解

    假设我们有一个表示文本的行数的类LineNumber: class LineNumber ( val num : Int ) 我们可以用这个类来表示一本书中每一页的行数: val lineNumOfP ...

  3. 网络Socket编程TCP协议例子

    1.单线程TCP服务端 public class TcpChatServer { private Integer port=8000; private ServerSocket serverSocke ...

  4. dubbo-001--前言

    1,前言: 第一次了解dubbo是在15年刚工作的时候在瑞友,项目是给凯撒旅游公司签证部做一个签证系统,项目需要调用一些凯撒的方法,比如权限.部门信息,跟签证相关的一些如签证国家城市.领区啥玩意的,等 ...

  5. flex布局下, 内容改变 不重新渲染问题

    当使用flex布局时,flex内元素包含的内容改变时,浏览器不会进行重新渲染, 答案引用 http://stackoverflow.com/questions/23474191/flexbox-hei ...

  6. SkipList 跳跃表

    引子 考虑一个有序表:14->->34->->50->->66->72 从该有序表中搜索元素 < 23, 43, 59 > ,需要比较的次数分别为 ...

  7. 同一台电脑使用多个ssh连接git,出现权限不够的问题

    在本地使用多个ssh连接git时出现如下错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 当一台电脑上同时使用多个ssh k ...

  8. 在Bootstrap框架中,form-control的效果

    在Bootstrap框架中,通过定制了一个类名`form-control`,也就是说,如果这几个元素使用了类名“form-control”,将会实现一些设计上的定制效果. 1.宽度变成了100% 2. ...

  9. python模块之xlrd

    python处理excel的模块,xlrd读取excel,xlwt写入excel 一.安装 pip install xlrd 二.使用 1. 打开excel,得到Book对象 import xlrd ...

  10. ASP.NET MVC显示异常信息

    开发ASP.NET多了,它的异常信息显示也习惯了.但在ASP.NET MVC中,却是另外一番情形. 以前只习惯使用IE浏览器,现在开发ASP.NET MVC程序,为了捕获到异常信息,Firefox的f ...