java - 如何更好地管理多项 Activity

标签 java android android-activity

public class MyApplication extends Application {
  ArrayList<Activity> mActivityList = new ArrayList<Activity>();

  public void addActivity(Activity a){

     mActivityList.add(a);
   } 

   public void removeActivity(Activity a){
      for(...){
         ...name equals..
         a.finish();
      }

   }

    public void removeAll(){
       for(){
        ...
        a.finish();
        }
   }

    public Activity getActivity(){...};

}

这是一种非常简单的 Activity 管理方式,但是mActivityList的堆内存消耗很大。那么还有另一种方法来管理 Activity

最佳答案

在列表中跟踪 Activity 绝对不是一个好方法。

如果您这样做的唯一目的是方便地完成所有(或任何)它们,我建议您看看 BroadcastReceiver

以下是您可以将其包含到所有 Activity 中的代码 fragment :

private BroadcastReceiver finishBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        finish();
    }
};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Start listening to any broadcast "tagged" with action name actionFinish.
    LocalBroadcastManager.getInstance(this).registerReceiver(finishBroadcastReceiver,
            new IntentFilter("actionFinish"));
}

@Override
public void onDestroy() {
    super.onDestroy();
    // Stop listening to broadcast when the activity is destroyed.
    LocalBroadcastManager.getInstance(this).unregisterReceiver(finishBroadcastReceiver);
}

每当您想要完成所有 Activity 时,请执行此操作:

LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("actionFinish"));

通过使用 Intent.putExtra() 来操作 Intent 对象,以确定您希望处置哪个 Activity(如果不是全部)。

关于java - 如何更好地管理多项 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19587458/

相关文章:

Android 设备不会从 Activity 延迟操作中唤醒(设置了 FLAG_TURN_SCREEN_ON 但没有任何反应)

java - 为每个单元测试重建 Hibernate sessionFactory(使用 spring 框架)

java - WebClient 在 JUnit 中导致 "java.lang.IllegalStateException: executor not accepting a task"

java - 为大对象创建 .hashcode() 和 .equals() 方法

android - 如何将图库中的图像上传到 ImageView 中?

java - 使用广播接收器多次打开 Activity

java - 从二维数组抛出异常后继续

android - 关于主题、栏等,不确定我是否应该使用 AppCompat

java - 单击表格行中的textView时出错

android - 你如何在 android 中调用 web 服务,即使 Activity 在后台,它也会继续等待响应?