zoukankan      html  css  js  c++  java
  • Android笔记:管理所有活动

    以关闭所有活动为例

    public class ActivityCollector {
      public static List<Activity> activities = new ArrayList<Activity>();
      public static void addActivity(Activity activity) {
        activities.add(activity);
      }
      public static void removeActivity(Activity activity) {
      activities.remove(activity);
      }
      public static void finishAll() {
        for (Activity activity : activities) {
          if (!activity.isFinishing()) {
            activity.finish();
          }
        }
      }
    }

    在活动管理器中,通过一个List 来暂存活动,然后提供了一个addActivity()方法用于向List 中添加一个活动,

    提供了一个removeActivity()方法用于从List 中移除活动,最后提供了一个finishAll()方法用于将List 中存储的活动全部都销毁掉。

    public class BaseActivity extends Activity {
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity", getClass().getSimpleName());
        ActivityCollector.addActivity(this);
      }
      protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);
      }    
    }


    在BaseActivity 的onCreate()方法中调用了ActivityCollector 的addActivity()方法,表明将当前正在创建的活动添加到活动管理器里。

    然后在BaseActivity 中重写onDestroy()方法,并调用了ActivityCollector 的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器里移除。

    从此以后,不管想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。例如在ThirdActivity 界面想通过点击按钮直接退出程序,只需将代码改成如下所示:

    public class ThirdActivity extends BaseActivity {
    @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("ThirdActivity", "Task id is " + getTaskId());
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.third_layout);
        Button button3 = (Button) findViewById(R.id.button_3);
        button3.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
            ActivityCollector.finishAll();
          }
        });
      }
    }

  • 相关阅读:
    企业生产经营相关英文及缩写之(9)称号/部门/公司
    企业生产经营相关英文及缩写之(2)生产/货仓
    企业生产经营相关英文及缩写之(6)BOM 通用缩写
    企业生产经营相关英文及缩写之(3)工程/工序(制程)
    企业生产经营相关英文及缩写之(11)Genenic 普通书写
    企业生产经营相关英文及缩写之(5)营业/采购
    企业生产经营相关英文及缩写之(7)Shipping 装运
    企业生产经营相关英文及缩写之(4)质量/体系
    软考总结
    IIS是如何处理ASP.NET请求的
  • 原文地址:https://www.cnblogs.com/lxwy1992/p/4741949.html
Copyright © 2011-2022 走看看