System.exit()和Process.killProcess(pid)在安卓中杀进程区别和 生命周期调用

本文探讨了System.exit(0)与Process.killProcess(Process.myPid())两种终止Android应用进程方法的不同之处。主要区别在于影响范围、执行方式及生命周期回调等方面,并简要介绍了这两种方法的使用场景。
AI助手已提取文章相关产品:

相同点

APP进程都会被直接杀掉

我们通过adb shell ps可以查看当前手机所有运行的进程状态, 
在执行完这两种方式之后,APP进程都会消失。

生命周期都不会被调用

onPause()、onStop()和onDestory(),也包括onSaveInstanceState,这些生命周期方法都不会被调用。

不同点

影响范围不同

System.exit(0)只会影响当前的程序; 
Process.killProcess(Process.myPid())会杀掉所有PID一样的进程,比如那些拥有相同UID的应用,统统都会被杀掉。

方式不一样

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:代表失败的信号,常用于捕获到异常执行。

转载于:https://my.oschina.net/lamYu/blog/1036891

您可能感兴趣的与本文相关内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值