Android上杀掉进程的方式有两种,分别是System.exit(0)和Process.killProcess(Process.myPid()),那么这两种方式有何区别呢?

相同点

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

使用方式

从上面可以看出,这两种方式都比较暴力,不推荐使用,尤其是现在的手机配置都很好的情况下。而且进程都被杀掉了,相应的Service也会被干掉,如果存在推送的话,会出现各种莫名的问题。
真要用的话,也得注意:如果程序有多个Activity,最好在主Activity中的OnBackPressed()中使用,如果在其它Activity中使用的话,APP会直接退出,退出后会重启应用,这样对于用户体验不是很好。

更多相关文章

  1. Android(安卓)面试精华题目总结
  2. 漫谈Android数据缓存、数据序列化和Intent传递复杂数据
  3. Android布局方式(AbsoluteLayout)学习
  4. android直接在桌面生成快捷方式
  5. android 跨应用启动/绑定Service && aidl
  6. 深入了解Android(安卓)任务和进程
  7. Android(安卓)MVP 模式:简单易懂的介绍方式
  8. Android(安卓)应用初始化及窗体事件的分发
  9. android的ITC

随机推荐

  1. android-ndk-r10d r13b下载地址
  2. Android如何实时监听网络状态.
  3. Android:实现装备购买
  4. android 数据报表
  5. android p IntentService有关stopSelf
  6. Android实现音量调节的方法
  7. 自用连接:android经典教程,软件开发,项目管
  8. Android(安卓)UI设计 时间控件TimePicker
  9. android http通信(一) HttpURLConntectio
  10. android手势