应用场景:可以在BaseActivity中调用相应的方法,然后让没一个Activity都去继承它,随时随地都可以退出APP,只需调用
removeAll就可以。
/**
* Activity的管理类
*/
public class ActivityCollector {
/**
* 创建一个List集合存放Activity
*/
public static List<Activity> 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 removeAll(){
for(Activity activity : activities){
if (!activity.isFinishing()){
activity.finish();
}
}
activities.clear();
}
}
BaseActivity:
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentViewResId());
//绑定初始化ButterKnife
ButterKnife.bind(this);
//设置状态栏
setStatuBar();
//初始化控件
initView(savedInstanceState);
//初始化数据
initData();
//添加Activity
ActivityCollector.addActivity(this);
}
/**
* 获取xml布局
* @return
*/
public abstract int getContentViewResId();
/**
* 初始化控件
*/
public abstract void initView(Bundle savedInstanceState);
/**
* 初始化数据
*/
public abstract void initData();
/**
* 设置状态栏
*/
public void setStatuBar(){
StatusBarUtil.transparencyBar(this); //设置状态栏全透明
StatusBarUtil.StatusBarLightMode(this); //设置白底黑字
}
@Override
protected void onDestroy() {
super.onDestroy();
//移除Activity
ActivityCollector.removeActivity(this);
}
}