如何从 Non-Main Activity 退出 Kotlin 应用程序

How do I exit a Kotlin app from Non-Main Activity

我有一个具有以下结构的应用程序:

我有一个启动器 Activity -> MainActivity.kt,它在 onCreate 中调用 SplashScreen.kt.

在这个SplashScreen.kt中,我从我的服务器下载数据,然后最终打开Dashboard.kt

Dashboard.kt中,每当我按两次后退,我想退出应用程序。

这就是我设置退出功能的方式

private fun quit(){
        if (lastBackPressed + 2000 > System.currentTimeMillis()){
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                this.finishAffinity()
            } else{
                this.finish()
                exitProcess(0)
            }
        }
        else Toast.makeText(
            context,
            "Press once again to exit!",
            Toast.LENGTH_SHORT
        ).show()
        lastBackPressed = System.currentTimeMillis()
    }

为此,我参考了以下问题:

然而,那里所有的解决方案,只能帮助我戒烟 Dashboard.kt

一旦 Dashboard.kt 退出,MainActivity 将再次启动并加载 SplashScreen.kt,进而加载 Dashboard.kt(再次)。

有没有更好更有效的退出应用程序的方法,直接从 Dashboard.kt activity?

在应用程序的清单文件中,在主 activity 中添加 android:noHistory="true" 标志。这将允许您的应用程序打开 MainActivity,然后在调用另一个 activity 时将其从堆栈中删除。

例如你的情况:

MainActivity.kt

-> SplashScreen.kt

-> Dashboard.ktMainActivity.kt 保留在堆栈中。)

如果你在主 activity 中添加 android:noHistory="true" 标志,那么会发生如下情况:

MainActivity.kt

-> SplashScreen.ktMainActivity.kt将从堆栈中移除。)

-> Dashboard.kt

-> 在此处按两次后退,您将能够退出该应用程序。