博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 完美退出 App (Exit)
阅读量:6507 次
发布时间:2019-06-24

本文共 1192 字,大约阅读时间需要 3 分钟。

最近两天为了解决上面退出程序问题折腾了半死,在google & baidu 上面找了很久、很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行。

      三个方法分别是:

 

  1. killProcess, 这种方式当你kill后 Activity 会返回到上一个Activity
  2. Android Level 8(包含8)前使用一个API来操作,Level8以后又是另外一种,所以不能通用
  3. 使用 FLAG_ACTIVITY_CLEAR_TOP,从 A 到 B
下面介绍自己的方式:
大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
 
使用全局变量。对了,第一个想到的就是继承 Application,代码入下。
[java]   
 
  1. public class AgentApplication extends Application {  
  2.   
  3. private List<Activity> activities = new ArrayList<Activity>();  
  4.   
  5.     public void addActivity(Activity activity) {  
  6.         activities.add(activity);  
  7.     }  
  8.   
  9.     @Override  
  10.     public void onTerminate() {  
  11.         super.onTerminate();  
  12.           
  13.         for (Activity activity : activities) {  
  14.             activity.finish();  
  15.         }  
  16.           
  17.         onDestroy();  
  18.           
  19.         System.exit(0);  
  20.     }  
  21. }  
然后在 Activity  onCreate 的时候来调用  addActivity (),有人可能想到这个Application需要在所有的 Activity  onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用  this.getApplication() 就可以了。
 
最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。
 
运行以上代码后,在LogCat 中会出现一行提示:
Process  包名 (pid  xxxxx)  has died.  证明你的程序退出了。现在你可以测试了。
 
希望对大家有用。同时感谢同事胡楠帮我处理其他问题,使得我才有时间来 写博客,谢谢。 

转载地址:http://tiwfo.baihongyu.com/

你可能感兴趣的文章
shell中检查某个命令是否存在
查看>>
【转载】Java程序设计入门 (二)
查看>>
第六天 if if…else 三木运算符
查看>>
新建文章 1
查看>>
which、whereis、location和fand的区别
查看>>
IP地址和子网划分学习笔记之《子网掩码详解》
查看>>
单词最近距离
查看>>
Android深度探索读后感 第四章
查看>>
软件名称集合
查看>>
方向导数的计算与梯度
查看>>
软件测试
查看>>
Unity3D插件分享
查看>>
尝试写第一个js插件 图片轮播
查看>>
springboot集成swagger
查看>>
实验吧_加了料的报错注入
查看>>
CF1063F String Journey
查看>>
2019-05-21 SQL学习
查看>>
ios图片适配问题
查看>>
牛客网-约数的个数
查看>>
读书笔记二
查看>>