Activity管理—实现一次关闭所有的activity

如果想要统一的管理activity,最好的方法就是就是可以将每个activity保存在可以存放全局变量的地方此时我们就会想到使用android的Application类,一个为了那些需要保存全局变量设计的基本类

关于Application类的介绍:传送门:android Application类的详细介绍

首先创建MyApplication类,继承自Application

public class MyApplication extends Application {

    private static MyApplication mInstance = null;
    private List<Activity> activityList = new LinkedList<Activity>();

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

    //获取MyApplication实例
    public static MyApplication getInstance() {
        return mInstance;
    }

    public void addActivity(Activity activity) {
        activityList.add(activity);
    }

    public void exit() {
        for (Activity activity : activityList) {
            activity.finish();
        }
    }
}

上面的的代码都不难,相信大家很轻松就可以看明白

对于使用数组使用LinkedList而不是ArrayList:
1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
详细说明:传送门比较ArrayList、LinkedList、Vector

下面建立activity:
布局文件就一个Button,故不再给出。

public class MainActivity extends AppCompatActivity {

    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //先把activity加入到List中
        MyApplication.getInstance().addActivity(this);

        button = (Button) findViewById(R.id.btn_close);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyApplication.getInstance().exit();
            }
        });
    }
}

按照这种方法,可以按自己的需要把activity放入到List中,进行全局管理,
最后记得在AndroidManifest.xml文件中配置application节点
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值