android中Activity的管理及程序的退出

public class ScreenManager {
private static Stack<Activity> activityStack;
private static ScreenManager instance;


private ScreenManager() {


}


public static ScreenManager getScreenManager() {
if (null == instance) {
instance = new ScreenManager();
}
return instance;
}


/**
* 弹出最后一个Activity
*/
public void popActivity() {
Activity activity = activityStack.lastElement();
if (null != activity) {
activity.finish();
activity = null;
}
}


/**
* 关闭指定的Activity

* @param activity
*/
public void popActivity(Activity activity) {
if (null != activity) {
activity.finish();
activityStack.remove(activity);
activity = null;
}
}


/**
* 获取当前的Activity

* @return
*/
public Activity currentActivity() {
return activityStack.lastElement();
}


/**
* 将当前Activity入栈

* @param activity
*/
public void pushActivity(Activity activity) {
if (null == activityStack) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}


/**
* 关闭除指定之外的所有Activity

* @param activity
*/
public void popOtherActivity(Activity activity) {
while (true) {
Activity tmpActivity = currentActivity();
if (null == tmpActivity) {
break;
}
if (!tmpActivity.equals(activity)) {
popActivity(tmpActivity);
}
if (activityStack.size() == 1) {
if (activityStack.lastElement() == activity) {
break;
}
}
}
}


/**
* 关闭所有Activity

* @param cls
*/
public void popAllActivityExceptOne(Class cls) {
while (true) {
Activity activity = currentActivity();
if (null == activity) {
break;
}
if (activity.getClass().equals(cls)) {
break;
}
popActivity(activity);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值