Android 当应用程序在后台运行一段时间时,活动堆栈似乎被清除

Android 当应用程序在后台运行一段时间时,活动堆栈似乎被清除,android,android-activity,android-lifecycle,Android,Android Activity,Android Lifecycle,我有一个具有以下流程的应用程序: Loading activity -> activity 1 -> activity 2 启动活动1后,使用finish()关闭加载活动 当单击“主页”按钮并在一段时间后重新启动它时(似乎需要30分钟或更长时间),我预期会出现以下行为之一: 活动仍处于活动状态-从活动2继续 活动已终止-从加载活动重新启动 但是,实际情况是,应用程序从活动1开始。我假设这意味着活动任务已被清除,因为如果加载活动未被关闭,应用程序将在那里启动(但我确实需要关闭它) 这

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

Loading activity -> activity 1 -> activity 2
启动活动1后,使用
finish()
关闭加载活动

当单击“主页”按钮并在一段时间后重新启动它时(似乎需要30分钟或更长时间),我预期会出现以下行为之一:

  • 活动仍处于活动状态-从活动2继续
  • 活动已终止-从加载活动重新启动
  • 但是,实际情况是,应用程序从
    活动1
    开始。我假设这意味着活动任务已被清除,因为如果加载活动未被关闭,应用程序将在那里启动(但我确实需要关闭它)


    这个假设是正确的还是有不同的解释?在这种情况下,如何从加载活动重新启动应用程序?

    当从加载活动启动活动1时,您可以尝试向意图中添加标志\u活动\u否\u历史标志

        Intent intent = new Intent(this, A.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    

    一旦活动1被导航离开,它就完成了。如果这不是合适的标志,那么还有许多其他标志可供选择。

    我认为这篇文章将回答您的问题:您如何启动活动2?“你也把活动1称为“完成”吗?@Salil Pandit-这个问题并不能解决我的问题。我不介意应用程序在一段时间后被终止,但我介意所描述的行为。@TJ Thind-我使用活动1中的
    startActivity
    启动活动2。我没有在活动1中调用
    finish
    。我猜,因为您没有在活动1中调用finish,所以您希望能够将其保留在后堆栈中,以便从活动2返回?这不是期望的行为-我确实希望活动1仍然处于活动状态(通过单击“上一步”从活动2返回)。我只想让应用程序返回到活动2(或者我参与的任何其他活动-可能还有其他活动),或者从头开始(加载活动)。