Android 在安装过程结束后单击Launcher,将Launcher活动置于后台并恢复到前台时,Launcher活动将重新打开

Android 在安装过程结束后单击Launcher,将Launcher活动置于后台并恢复到前台时,Launcher活动将重新打开,android,Android,一个问题是当启动器活动被放到后台并通过单击启动器恢复到前台时,它会重新打开。只有在首次运行后,当用户安装应用程序并从play store或android软件包安装程序启动应用程序时,才会出现此问题 以下是重现问题的步骤: 用户从play store或android软件包安装程序安装应用程序 安装后,用户通过在play store应用程序或android软件包安装程序中单击“打开”打开新安装的应用程序 在应用程序内部,用户进入另一个活动,通过按home按钮将整个应用程序置于后台 用户通过单击应用程

一个问题是当启动器活动被放到后台并通过单击启动器恢复到前台时,它会重新打开。只有在首次运行后,当用户安装应用程序并从play store或android软件包安装程序启动应用程序时,才会出现此问题

以下是重现问题的步骤:

  • 用户从play store或android软件包安装程序安装应用程序
  • 安装后,用户通过在play store应用程序或android软件包安装程序中单击“打开”打开新安装的应用程序
  • 在应用程序内部,用户进入另一个活动,通过按home按钮将整个应用程序置于后台
  • 用户通过单击应用程序图标从后台还原应用程序,并创建新的启动程序活动
  • 因此,有3个活动,而不是2个。后堆栈如下所示:

  • 发射装置活动
  • 用户在应用程序内启动的一些其他活动
  • 发射装置活动
  • 接下来,当应用程序从最近的应用程序列表中删除并且再次执行上述步骤时,应用程序的行为完全符合预期。新的后堆栈如下所示:

  • 发射装置活动
  • 用户在应用程序内启动的其他一些活动 我创建了示例应用程序来演示该问题:

    下面显示了安装过程和android软件包安装程序的首次运行:

    用户在应用程序内部启动第二个活动,并将应用程序置于后台。接下来,用户希望将应用程序恢复到前台,结果再次创建了FirstActivity

    以下是完成上述步骤后的后堆栈:

    现在,让我们以标准方式运行应用程序:

    在此测试之前,该应用已从最近的应用列表中删除。用户启动应用程序内部的第二个活动,并通过按home按钮将其置于后台。接下来,用户将应用程序恢复到前台,这一次用户将看到第二个活动。应用程序现在的行为与预期一致

    以下是完成上述步骤后的后堆栈:

    这个问题不仅仅涉及我的示例应用程序。可以使用play store中的任何应用程序进行验证。我在从play store安装的Netflix应用程序上进行了此类测试(顺便说一句,由于安全策略,Netflix主屏幕不可见):

    以下是步骤:

  • 安装Netflix应用程序
  • 从游戏商店打开它
  • 单击主屏幕上的“帮助”按钮(在Netflix应用程序内)
  • 将应用程序放到后台
  • 点击应用图标 用户再次看到主屏幕而不是帮助屏幕。后堆栈如下所示:

  • 主屏幕
  • 帮助屏幕
  • 主屏幕
  • 按下“后退”按钮可以验证,然后用户将逐个看到每个屏幕。正如我们所见,Netflix应用程序的行为与我的示例应用程序相同

    有人能向我解释为什么会这样吗