Android-System.exit()和Process.killProcess()
来源:互联网 发布:兄弟打印机网络共享 编辑:程序博客网 时间:2024/06/05 05:40
Android上杀掉进程的方式有两种,分别是System.exit(0)和Process.killProcess(Process.myPid()),那么这两种方式有何区别呢?
相同点
1、APP进程都会被直接杀掉
我们通过adb shell ps可以查看当前手机所有运行的进程状态,
在执行完这两种方式之后,APP进程都会消失。
2、生命周期都不会被调用
onPause()、onStop()和onDestory(),也包括onSaveInstanceState,这些生命周期方法都不会被调用。
不同点
1、影响范围不同
System.exit(0)只会影响当前的程序;
Process.killProcess(Process.myPid())会杀掉所有PID一样的进程,比如那些拥有相同UID的应用,统统都会被杀掉。
2、方式不一样
System.exit(0)是停止程序的虚拟机;
Process.killProcess(Process.myPid()) 是通过PID去杀死进程。
补充
System.exit(0)和System.exit(1)
看官方的方法注释,如下:
Use 0 to signal success to the calling process and 1 to signal failure.
0:代表成功的信号(正常退出);
1:代表失败的信号(异常退出),常用于捕获到异常执行。
使用方式
从上面可以看出,这两种方式都比较暴力,不推荐使用,尤其是现在的手机配置都很好的情况下。而且进程都被杀掉了,相应的Service也会被干掉,如果存在推送的话,会出现各种莫名的问题。
真要用的话,也得注意:如果程序有多个Activity,最好在主Activity中的OnBackPressed()中使用,如果在其它Activity中使用的话,APP会直接退出,退出后会重启应用,这样对于用户体验不是很好。
参考:
Android两种杀掉进程方式总结(System.exit()和Process.killProcess())
- Android-System.exit()和Process.killProcess()
- System.exit和Process.killProcess
- android Process.killProcess 和 System.exit(0) 区别
- android Process.killProcess 和 System.exit(0) 区别
- android Process.killProcess 和 System.exit(0) 区别
- android Process.killProcess 和 System.exit(0) 区别
- android Process.killProcess 和 System.exit(0) 区别
- Android两种杀掉进程方式总结(System.exit()和Process.killProcess())
- android开发时,finish(),android.os.Process.killProcess(android.os.Process.myPid());跟System.exit
- android开发时,finish(),android.os.Process.killProcess(android.os.Process.myPid());跟System.exit(0)
- Android疑难杂症之KillProcess 和System.exit 无效
- Android System.exit(code) and android.os.Process.killProcess(pid)或者发生RunTimeException 导致应用重启
- Android System.exit(code) and android.os.Process.killProcess(pid)或者发生RunTimeException 导致应用重启
- Android退出程序的两种方式:killProcess()和System.exit()
- android开发两种退出程序方式(killProcess,System.exit)
- android开发两种退出程序方式(killProcess,System.exit)
- android开发两种退出程序方式(killProcess,System.exit)
- Android中killProcess()、System.exit(0)及finish()的区别
- C++中的namespace简介
- CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换
- logback配置详解
- HDU1598 find the most comfortable road(并查集+kruskal)
- 处理大并发之三 对libevent的初步认识
- Android-System.exit()和Process.killProcess()
- HTML基础
- Surpassing Human-Level Performance on ImageNet Classification ImageNet Classification
- mysql导入大批量数据出现MySQL server has gone away的解决方法
- flume/kafaka/spqrk测试用例
- 活动倒计时功能
- 解决nodejs调用fs.renameSync报错的问题
- windows下Google Protocol Buffer 编译安装(vs)教程
- java网络编程之传输协议