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);
}
}
}
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);
}
}
}
相关文章推荐
- android中Activity的管理及程序的退出
- android完美退出程序(创建单例管理所有打开的activity)
- android完全退出程序(android退出有多个activity的应用)
- Android 2.2关闭所有Activity完全退出程序方法
- android从横屏的activity退回到竖屏的activity时,程序自动退出了。
- android程序退出当前activity的方法
- Android应用开发多个activity完全退出程序方法
- Android结束Activity完美退出程序
- Android完全结束Activity并退出程序
- android 在一个Activity中结束另一个Activity的方法(可以完全退出程序)
- android 多个activity退出程序
- 退出Android程序时清除所有activity的实现方法
- android从横屏的activity退回到竖屏的activity时,程序自动退出了。
- Android结束Activity退出程序的一种有效方法
- Android完全退出多个activity程序设计
- Android 退出多个Activity | 退出程序
- 退出android程序清楚所有activity
- Android完全退出程序退出所有Activity
- android程序退出关闭多个activity
- Android Activity 完全结束并退出程序的实例