背景:如果手机界面停留在ThirdActivity,你会发现当前想退出程序,需要按3次BACK键.按Home键只是暂时将程序挂起。如果我们想只按一下就能退出程序该怎么办?
步骤:
1:写一个类BaseActivity 继承Activity
2:写一个集合类ActivityCollector ,写3个方法,addActivity,removeActivity,finishAll
3:在类MyActivity里面调用该集合里面的方法,需要销毁的Activity调用finishAll
代码如下:
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); } }
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 finnishAll(){//将list中存储的活动全部销毁 for (Activity activity:activities) { if(!activity.isFinishing()){//isFinishing()判断当前activity是否被干掉了 true:被干掉了,false:还没被干掉 activity.finish(); } } } }