因为我程序中有很多跳转,使用finish()只能退出当前界面,其它界面无法退出
android.os.Process.killProcess(android.os.Process.myPid()) //获取PID
System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出
上面这种也不行,只能退出当前界面,无法退出其它界面
经过上面折腾,我知道 finish() 能够退出当前界面,所以就可以弄个集合把开过的界面存起来,然后当需要退出的时候循环退出即可
步骤如下:
1.在一个通用类中加如下代码:
public static List<Activity> activities=new ArrayList<Activity>(); //定义存储容器
// 添加界面
public static void addActivity(Activity acticity)
{
if(!activities.contains(acticity))
{
activities.add(acticity);
}
}
public static void removeActivity(Activity activity)
{
activities.remove(activity);
}
// 释放界面
public static void finishAll() {
for (Activity activity : activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
activities.clear();
}
2.在每个界面的onCreate()方法里面把界面对象添加到集合中
AppConfig.addActivity(this); //20221207标签:activities,界面,KeyEvent,static,activity,退出,public From: https://www.cnblogs.com/OmySql/p/16963925.html
3.在需要退出程序的时候,执行通用方法finishAll来释放界面即可