您的位置:首页 > 移动开发 > Android开发

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

2013-01-18 16:30 417 查看
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);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: