首页 > 编程语言 >Android 通过KeyEvent.KEYCODE_BACK退出程序,只退出了当前界面,其它界面未退出简单解决方案

Android 通过KeyEvent.KEYCODE_BACK退出程序,只退出了当前界面,其它界面未退出简单解决方案

时间:2022-12-07 18:22:06浏览次数:45  
标签:activities 界面 KeyEvent static activity 退出 public

因为我程序中有很多跳转,使用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
3.在需要退出程序的时候,执行通用方法finishAll来释放界面即可

标签:activities,界面,KeyEvent,static,activity,退出,public
From: https://www.cnblogs.com/OmySql/p/16963925.html

相关文章