2

我想用这样的类指挥管理所有活动: 在此处输入图像描述
所有活动都扩展基本活动以使用公共视图。
在这种情况下,我想处理传输活动,例如:

 Base -> First -> Second -> Third -> First
 Base -> First -> Fourth -> Fifth -> Fourth

传输活动时,导体必须处理堆栈中的所有活动。
我尝试如下编写这个导体(我使用列表而不是堆栈来管理):

public class Conductor {    
   private List<Activity> listOfActivityInStack;  

   public Conductor(){
  listOfActivityInStack = new ArrayList<Activity>();
   }
   public void startActivity(Activity activity, Class<?> cls){
  listOfActivityInStack.add(activity);
  Intent i = new Intent(activity.getApplicationContext(), cls);
  activity.startActivity(i);
}

   public void startActivityForResult(Activity activity, Class<?> cls, int requestCode){
  listOfActivityInStack.add(activity);
  Intent i = new Intent(activity.getApplicationContext(), cls);
  activity.startActivityForResult(i, requestCode);
}

   public void startAcitivtyClearPrevious(Activity activity, Class<?> cls){
  listOfActivityInStack.clear();
  listOfActivityInStack.add(activity);
  Intent i = new Intent(activity.getApplicationContext(), cls);
  i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  activity.startActivity(i);
}

   public int getCount(){
  if(listOfActivityInStack == null)
    return 0;
  return listOfActivityInStack.size();
 }
 }

我将此导体存储在全局变量中。然后我使用它如下:

  //Get conductor from application global
  conductor.startActivity(FirstActivity.this, SecondActivity.class);
  //Then add conductor to application global

但我有一些问题:

  • 我必须为所有活动处理 goBack() 以从列表中删除活动。
  • 检查列表中是否存在活动,如果是,请尝试获取其实例。

有没有最好的方法来管理 android 上的所有活动?我试过搜索,但没有找到好的答案。
我想知道天气是否正确。任何推荐或示例都会有所帮助!

4

1 回答 1

1

有一种方法可以做到这一点。您必须保存所有活动状态。当您需要召回它们时,您必须使用该状态。

更多信息请看这里:

使用 Save Instance State 保存 Android Activity 状态

于 2012-07-20T09:08:31.817 回答