BaseActivity, 活动管理器

BaseActivity

开发中,如果有多个Activity需要完成一个相同的功能,那么就可以新建BaseActivity继承自Activity,然后所有的Activity继承自BaseActivity,只需要在BaseActivity中实现该功能即可。

BaseActivity还可以让我们立即判断出当前界面对应的Activity。只需要在BaseActivity的onCreate()方法中获取当前实例的类名,通过Log打印出即可。

package com.example.rex.activitytest;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

/**
 * Created by Rex on 2018/4/15.
 */

public class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity", getClass().getSimpleName());  //打印当前实例的类名
    }
}

 活动管理器

ActivityCollecotor作为活动管理器,对所有的活动进行管理。我们通过List来暂存活动,然后提供addActivity()和removeActivity()用于从List中移除活动,最后,提供finishAll()用于将List中存储的所有活动销毁,退出程序。

package com.example.rex.activitytest;

import android.app.Activity;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Rex on 2018/4/15.
 */

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

由于是对所有Activity进行管理,还应该在BaseActivity中onCreate()和onDestroy()中加上相应语句,分别把当前Activity加入和移除集合。

package com.example.rex.activitytest;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

/**
 * Created by Rex on 2018/4/15.
 */

public class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity", getClass().getSimpleName());  //打印当前Activity类名
        ActivityCollector.addActivity(this);  //将当前Activity加入到活动管理器中
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);  //将当前Activity移除活动管理器
    }
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值