【发布时间】:2019-12-14 06:14:07
【问题描述】:
我有一个具有以下结构的应用程序:
我有一个启动器 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 活动退出应用?
【问题讨论】:
-
您是否在开始新的活动之前完成了之前的活动?
-
不。谢谢。这是一个愚蠢的错误>///
-
我喜欢你只在 SplashActivity 中下载数据的方式......因为不能保证在应用程序执行期间运行。
-
@EpicPandaForce 有趣!你能详细解释一下吗?我实际上是在 Splash 中从我的服务器下载 jsonData。此数据进一步用于创建仪表板元素。不保证运行怎么办?
-
@SowingFiber 因为如果您从后台返回,Android 可以跳过您的启动画面。见stackoverflow.com/questions/49046773/…