通过StackManager对Android应用的Activity进行自己管理的工具类
直接上代码
package com.example.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Stack;
import android.app.Activity;
public class StackManager {
//栈管理器 StackManager实例
private static StackManager instance;
//Stack 是一种后进先出的数据结构(LIFO),存放了一系列对象的栈。用户可以对栈执行pop和push操作,哪怕是null对象也行,而且Stack没有大小的显示
Stack<Activity> activityStack = new Stack<Activity>();
Map<String, Activity> mapStack = new HashMap<String, Activity>();
/**
* 单例模式 获取实例
* @return
*/
public synchronized static StackManager getInstance() {
if (instance == null)
instance = new StackManager();
return instance;
}
/**
* 向Stack中添加Activity 为设置退出准备
*
* @param activity
*/
public void pushToStack(Activity activity) {
if (activity != null)
activityStack.add(activity);
}
/**
* 清空栈中所有的Activity
*/
public void popAllForExit() {
for (Activity e : activityStack)
e.finish();
activityStack.clear();
}
/**
* 向Stack里添加Activity,为导航区做准备
*
* @param key
* @param activity
*/
public void pushToMapStack(String key, Activity activity) {
if (!mapStack.containsKey(key))
mapStack.put(key, activity);
}
public void popAllForStartActivity(String key) {
Iterator<String> iterator = mapStack.keySet().iterator();
while (iterator.hasNext()) {
String k = iterator.next();
if (!k.equals(key)) {
mapStack.get(k).finish();
mapStack.remove(k);
iterator = mapStack.keySet().iterator();
}
}
}
}
项目需要的时候直接加入就OK。
本文介绍如何使用StackManager工具类实现对Android应用程序中Activity的自定义管理,通过代码示例展示其实现方式。
676

被折叠的 条评论
为什么被折叠?



