我有一个具有以下结构的应用程序:
我有一个启动器 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
活动中退出应用程序?
在应用程序的清单文件中,android:noHistory="true"
在主活动中添加标志。这将允许您的应用程序打开 MainActivity,然后在调用另一个活动时将其从堆栈中删除。
例如在你的情况下:
MainActivity.kt
-> SplashScreen.kt
-> Dashboard.kt
(MainActivity.kt
保留在堆栈中。)
如果您android:noHistory="true"
在主要活动中添加标志,则会发生如下情况:
MainActivity.kt
-> SplashScreen.kt
(MainActivity.kt
将从堆栈中删除。)
-> Dashboard.kt
-> 在此处按两次,您将能够退出该应用程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句