mainactivity跳到堆栈的顶部

ghg1uchk  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(318)

我正在尝试开发一个包含多个活动的应用程序,我正在使用 singleInstance 启动模式,以便同一活动不会有多个示例。但是,当我按下测试电话上的home(主页)按钮时 onStop() 但不是 onDestroy() ,然后我再次启动应用程序(通过单击图标),它会让我回到 MainActivity . 进一步调查,我发现 adb shell dumpsys activity | grep -i run 命令)不受影响,除了 MainActivity ,它突然出现在堆栈的顶部。
我试图在网上搜索这个问题,但没有看到类似的。我可能只是忽略了一些显而易见的事情,但我不知道。谢谢你的帮助!
编辑---
我将举一个例子说明发生了什么以及我的预期。我在启动应用程序 MainActivity ,然后导航到另一个活动( AboutUs )使用按钮。但是,当我按home按钮(在手机上)并再次单击应用程序图标时,而不是转到 AboutUs ,转到 MainActivity . AboutUs 仍在堆栈中,但就在下面 MainActivity . 所以,烟囱没有受到干扰除了 MainActivity 上升到顶端。

这是一张 Profiler 来自安卓工作室。如你所见,我点击了一个按钮 AboutUs ,然后按手机上的home键,这就产生了一个间隙。在我再次点击应用程序后,它又回到了 MainActivity . MainActivity 是单示例和启动器活动。

5q4ezhmt

5q4ezhmt1#

删除特殊启动模式 singleInstance<activity> 声明 MainActivity 在你的舱单上。这种特殊的启动模式是导致问题的原因。通常应避免特殊启动模式 singleInstance 以及 singleTask 因为他们造成的问题比解决的问题还多。这些只有在非常特殊的情况下才需要(例如,如果您想编写自己的主屏幕替换)。

相关问题