Android 退出应用

前言

Android是个神奇的东西 当程序进入后台时 即使时application也会被销毁
如果application中保存着某些变量就会丢失
所以我们可以在application销毁时 退出应用

可以给application注册一个onDestroy事件,即销毁时触发的事件。
在Android中,Activity有个栈,一个Activity结束掉,会回到上一个Activity,并不是退出应用程序。
Android中,退出应用程序的方式有以下两种

通过pid

1
2
int pid = android.os.Process.myPid();//获取当前应用程序的PID
android.os.Process.killProcess(pid);//杀死当前进程

这种方法退出应用,是会保留某些后进程,例如:Service,Notifications等。

通过ActivityManager

ExitAppUtil.kt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import com.xhly.core.utils.ActivityManager

/**
* 退出当前应用工具类。
*
* 说明:
* - 使用 `close()`:只 finish 掉已记录的 Activity(更温和)
* - 使用 `exit()`:finish + 直接杀进程(更“彻底”,但更激进)
*/
object ExitAppUtil {

/**
* @param force 是否强制退出(会杀进程)
*/
@JvmStatic
fun exitApp(force: Boolean = false) {
if (force) {
ActivityManager.getInstance().exit()
} else {
ActivityManager.getInstance().close()
}
}
}