工具篇——ActivityCollectorUtil(随时随地的退出程序)

代码如下:

package com.gzqol.hb.mendianguanli.util;

import android.app.Activity;

import java.util.ArrayList;

import java.util.List;

/**

* 随时随地的退出程序

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

* 提供了一个removeActivity()方法用于从List中移除活动,

* 最后提供了一个finishAllActivity()方法用于将List中存储的活动全部都销毁掉。

*

* 使用方式:(BaseActivity见文件末尾)

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

* 然后在BaseActivity中的onDestory()方法中调用removeActivity()方法,,表明将马上要销毁的活动从活动管理中移除。

* 从此以后,不管你想在什么地方退出程序,只需要调用ActivityCollectorUtil.finishAllActivity()方法就可以了。

*/

public class ActivityCollectorUtil {

    public static List activities = new ArrayList();

    /**

     * 添加新的activity到集合中

     *

     * @param activity

     */

    public static void addActivity(Activity activity) {

        activities.add(activity);

    }

    /**

     * 从集合中移除相应的activity

     *

     * @param activity

     */

    public static void removeActivity(Activity activity) {

        activities.remove(activity);

    }

    /**

     * 关闭所有的活动(activity),即退出程序

     */

    public static void finishAllActivity() {

        for (Activity activity : activities) {

            if (!activity.isFinishing()) {

                activity.finish();

            }

        }

    }

}

//public class BaseActivity extends Activity {

//

//    @Override

//    protected void onCreate(Bundle savedInstanceState) {

//        super.onCreate(savedInstanceState);

//        ActivityCollectorUtil.addActivity(this);

//    }

//

//    @Override

//    protected void onDestroy() {

//        super.onDestroy();

//        ActivityCollectorUtil.removeActivity(this);

//    }

//}

在项目中的应用:

1.在BaseActivity中的onCreate()中调用addActivity()添加activity,

   在onDestroy()中调用removeActivity()移除activity;

public class BaseActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        ActivityCollectorUtil.addActivity(this);

    }

    @Override

    protected void onDestroy() {

        super.onDestroy();

        ActivityCollectorUtil.removeActivity(this);

    }

}

2.其他Activity均继承BaseActivity;

3.在某个地方调用finishAllActivity()即可关闭所有继承BaseActivity的Activity页面。

public class CollectorActivity extends BaseActivity {

    @InjectView(R.id.btn)

    Button btn;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_collector);

        ButterKnife.inject(this);

    }

    @OnClick(R.id.btn)

    public void onViewClicked() {

        ActivityCollectorUtil.finishAllActivity();

    }
}

你可能感兴趣的:(工具篇——ActivityCollectorUtil(随时随地的退出程序))