如果我们的程序需要一个注销或者退出的功能(即随时能退出程序),那我们就可以用 一个专门的集合类对所有的活动进行管理 。
新建一个ActivityCollector类作为活动管理器,代码如下所示
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();
}
}
system.exit(0); //system.exit(int i); i=0,表示正常退出;i>0,表示非正常退出。
}
}
在活动管理器中,我们通过一个List来暂存活动,然后提供了一个addActivity()方法来向List中添加一个活动,提供了一个removeActivity()方法来从List中移除活动,最后提供了一个finishAll()方法来将List中存储的活动全部销毁掉(也就是清空活动),然后退出程序。
接下来修改BaseActivity中的代码,如下所示
public class BaseActivity extends Activity{
@Override
protected void onCreated(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ActivityCollecter.addActivity(this);
}
@Override
protected void onDestroy(){
super.onDestroy();
ActivityCollecter.removeActivity(this);
}
}
在BaseAcitivy的onCreate()方法中调用了ActivityCollecter的addActivity()方法,表明将当前正在创建的活动添加到活动管理器里。然后在BaseActivity中重写onDestroy()方法,并调用ActivityCollecter的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器中移除。
以后,无论在什么地方想要退出程序,只需要调用ActivityCollecter.finishAll()方法就可以了。
本文摘简自: 第一行代码 一书