Android杀进程的两种方式:System.exit()和Process.killProcess()

QuibblerQuibbler 2025-01-04 约 3 分钟 1826 次阅读

Android杀进程的两种方式:System.exit()和Process.killProcess()

Android上杀掉进程的方式有两种:System.exit(0)和Process.killProcess(Process.myPid()),这两种方式有些许区别。

1、相同点

1.1、APP进程都会被直接杀掉

我们通过adb shell ps可以查看当前手机所有运行的进程状态,

在执行完这两种方式之后,APP进程都会消失。

1.2、生命周期都不会被调用

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

2、不同点

2.1、影响范围不同

System.exit(0)只会影响当前的程序;

Process.killProcess(Process.myPid())会杀掉所有PID一样的进程,比如那些拥有相同UID的应用,统统都会被杀掉。

2.2、方式不一样

System.exit(0)是停止程序的虚拟机;System.exit(0)和System.exit(1),看官方的方法注释,如下:

Use 0 to signal success to the calling process and 1 to signal failure.
    1
    0:代表成功的信号(正常退出);
    1:代表失败的信号(异常退出),常用于捕获到异常执行。

Process.killProcess(Process.myPid()) 是通过PID去杀死进程。

从上面可以看出,这两种方式都比较暴力,不推荐使用,尤其是现在的手机配置都很好的情况下。而且进程都被杀掉了,相应的Service也会被杀掉,如果存在推送的话,会出现各种莫名的问题。

真要用的话,也得注意:如果程序有多个Activity,最好在主Activity中的onBackPressed()中使用,如果在其它Activity中使用的话,APP会直接退出,退出后会重启应用,这样对于用户体验不是很好。

相关推荐

精选
ViewPager和PagerAdapter、FragmentPagerAdapter、FragmentStatePager
Android

ViewPager和PagerAdapter、FragmentPagerAdapter、FragmentStatePager

ViewPager1、ViewPagerandroidx.viewpager.widget.ViewPager,Android中使用非常广泛的控件,可以说是APP必备:首次打开引导页、页面Banner广告等。常用方法:setAdapter() 设置适配器setOffscreenPageLimit() 设置缓存的页面个数,默认是 1setCurrentItem() 跳转到特定的页面setOnPage

1.1k
获取Android内置WebView内核版本
Android

获取Android内置WebView内核版本

获取Android内置WebView内核版本竟然能遇到这样奇葩的事情,网页用的技术过于新颖,以至于只支持高版本Chromium内核的,低版本安卓系统中内置的内核版本较低,无法加载前端页面。1、设置查看在系统设置里 > 应用 > 应用管理 > 显示系统应用,查看WebView组件:2、页面查看通过WebView发起的网络请求,都会带上浏览器的UA,通常页面都可以通过UA判断浏览器的内核版本。这里有两

1.1w
Android 14适配总结
Android

Android 14适配总结

Android 14适配总结毕业工作至今已经适配了三个Android大版本,从Android 11到Android 12、再到Android 13。2023年,Google即将推出的Android 14,上半年已经开始第一批适配。现在,第四个Android版本已经适配完,总结记录一下。1、Android 14计划Google一般会在2月份对外发布预告,同时放出开发者预览版。“拉通”各大平台、厂商以

1.1w