代码改变世界

Activity的跳转和关闭问题

2012-11-05 22:10  bitfairyland  阅读(1041)  评论(0编辑  收藏  举报

最近一直忙,也因为懒,呱,好久没更新博客了

刚写了个问卷的小客户端,里边频繁的窗体跳转和消息传递保存,就设计到了Activity的关闭与打开的问题

最后决定用栈来解决这个问题

栈的定义就不解释,解决方案如下

1)在Application定义一个Activity栈

public class QuestinnaireAPP extends Application

private static Stack<Activity> activityStack = new Stack<Activity>();

2)定义一个入栈的方法

public void pushActivity(Activity activity) {   activityStack.add(activity);

 }

3)定一个除当前Activity关闭当前栈中其它Activity的方法

public void curActivity(Activity activity) {   for (Activity a : activityStack) {    if(!a.equals(activity)){     a.finish();    }       }

 }

4)关闭栈中指定的Activity的方法

public void cancelActivity(int iA) {   activityStack.get(iA).finish();

 }

5)关闭应用程序所有Activity

public void popAllActivity() {
  for (Activity activity : activityStack) {
   activity.finish();
  }
  System.exit(0);
 }

在Activity的启动的时候把窗体压入栈

QuestinnaireAPP.getScreenManager().pushActivity(this);