Kotlin: 一键退出App

传统的通过调用finish()或System.exit(0)退出App的方法在现代Android系统中可能无效。一种有效的方法是在Application中维护一个Activity列表,当Activity创建和销毁时进行管理。同时,封装一个函数用于退出App,结合Activity管理,确保App完全退出。在需要退出的地方调用该函数即可实现一键退出。
摘要由CSDN通过智能技术生成

       以前的若干写法发现到如今已经不好使了,调用之后在应用后台还是能看到APP进程,并不能杀掉APP,写法比如下面最常见的两种都不好用了:

 android.os.Process.killProcess(android.os.Process.myPid())

 System.exit(1)
 System.gc()

现在好用的解决方案是:

1. 在Application中建一个用来存储所有界面活动list容器,界面创建的时候将新的Activity装入list,界面销毁的时候将此Activity移除list。

 

//在Application中定义
 private var activityList = mutableListOf<Activity>()

    /**
     * 同样写在Application中。
     */
    fun addActivity(activity: Activity) {
        if (!activityList.contains(activity)) {
            activityList.add(activity)
        }
    }

    fun removeActivity(activity: Activity) {
        if (activityList.contains(activity)) {
            activityList.remove(activity)
        }
    }

    fun removeAllActivity() {
        activityList.forEach {
            it.finish()
        }
    }

在新Activity的生命周期中调用上述add和remove的单方法(如下代码写在BaseActi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值