用一个专门的集合类对所有的活动进行管理
public class ActivityCollector{
public static List<Activity> activitiies = new ArrayList<Activity>();
//添加activity到活动集合中
public static void addActivity(Activity activity){
activitied.add(activity);
}
//从活动集合中移除activity
public static void removeActivity(Activity activity){
activities.remove(activity);
}
//finish所有activity
public static void finishAll(){
for(Activity activity : activities){
if(!activity.isFinishing()){
activity.finish();
}
}
}
}
然后修改Activity的onCreate()和onDestroy(),可以在BaseActivity中使用
//参照技巧--快速找到当前界面是哪个activity
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
以后,不管在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。
例如按钮点击事件:
button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
ActivityCollector.finishAll();
}
});
当然可以在销毁所有活动的代码后结束掉当前进程,以保证程序安全退出。