当我们打开了很多的活动的时候,如果一个一个的退出就太麻烦了,使用home键并不能杀死活动。我们可以使用下面的方法
(建议先看这个网址里的内容,会使用到BaseActivity类
http://blog.csdn.net/kejizuiqianfang/article/details/62225970)
首先我们建立一个ActivityCollector类,只要使用java class就可以了,不需要对应的活动,代码如下
package com.example.android.li.thelifeofactivity;
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/3/15.
*/
public class ActivityCollector {
public static List<Activity> activities = new ArrayList<>();
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();
}
}
}
}
然后在BaseActivity中改写为
package com.example.android.li.thelifeofactivity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
/**
* Created by Administrator on 2017/3/15.
*/
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this); //每当开启一个活动就把活动增加到容器中
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this); //当活动结束的把活动从容器中移除
}
}
当我们想在某一个活动中结束掉程序的时候就可以这么做了,可以创建一个按钮,然后在点击事件中使用finishAll()方法就可以了
button = (Button) findViewById(R.id.button_normal);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCollector.finishAll();
}
});