什么可以在 finish() 之后让 activity 存活?

What can keep activity alive after finish()?

我有 HomeScreenLoginScr activity,我想从 HomeScreen 移动到 LoginScr activity。我是这样做的:

val thread = Thread(Runnable {
    try {
     val client = APICallRequests.client
     client.dispatcher.executorService.shutdown()
     client.connectionPool.evictAll()
    } catch (e: java.lang.Exception) {
     e.printStackTrace()
    }
})

thread.start()


val intent = Intent(this, LoginScr::class.java)
startActivity(intent)
finishAfterTransition()

如您所见,我尝试关闭 okHttp3 客户端,因为它可能使 HomeScr activity 保持活动状态。我也使用 finishAfterTransition()。然后,当我从 LoginScr 移动到 HomeScr 时,我会这样做:

private fun moveToNextScreen(){
        val goToMain = Intent(this, HomeScreen::class.java)
        startActivity(goToMain
                .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
        )
        finishAfterTransition()
        overridePendingTransition(0, 0)
    }

如我所见,我创建了两个 activity 实例而不是一个。我是怎么做到的 - 添加日志到 onCreate() 乐趣。我完全不明白为什么会这样。 onBackPressed():

后会遇到类似问题
override fun onBackPressed() {
   val startMain = Intent(Intent.ACTION_MAIN)
   startMain.addCategory(Intent.CATEGORY_HOME)
   startMain.flags = Intent.FLAG_ACTIVITY_NO_ANIMATION
   startActivity(startMain)
   finish()
   super.onBackPressed()
}

我尝试了很多变体,但我的 HomeScreen 可以单独使用。我也在清单上尝试过这样的方法:

android:launchMode="singleTask"
android:noHistory="true"

也许有人知道如何解决这个问题?

我觉得这个回答可以帮到你 此外,如果你想让你的应用程序在后台保持活动状态,那么你可以为此目的使用服务,这里是文档 https://developer.android.com/guide/components/services