我有一个包含多个活动的应用程序。第一个是登录/启动活动,随后是一些在应用程序生命周期内发生变化的活动(及其“登录”连接)。
如果用户按下主页按钮,它会返回到 Launcher。一切都很好。如果用户转到“最近的应用程序”并选择我的应用程序,它会从停止的地方返回(所需的行为)。如果用户转而转到启动器中的我的图标并再次启动应用程序,我会得到两种行为之一。1. 活动完全返回到它之前的位置,就像我从最近的应用程序中选择它时一样。2. 活动被带到初始登录屏幕。不是我所期待的。在大多数设备和 Android 版本上似乎并非如此,但似乎每次都在某些设备上发生。我无法将其固定到 4.0.4 或 4.1 或 4.2 - 我们在某些手机的所有 3 个版本上都看到了这种行为。
当我在移动到启动器时查看这些系统上的活动堆栈(使用 dumpsys)时,它们似乎是相同的(我在堆栈上看到我最近的,就在启动器下方,我还看到我的应用程序堆栈我最近的在上面)。但是当我点击启动器中的应用程序图标时,在大多数设备上,我看到它返回并且活动堆栈在顶部显示我最近的。但是在其他几台设备上,我在最近的设备上看到了登录活动。如果我在登录活动中单击“返回”按钮,我会很高兴地回到我离开的地方。
为了说明,在我点击主页然后单击我的应用程序图标后,在某些设备上,我看到以下堆栈:
"ConnectActivity2"
"ConnectActivity1"
"LoginActivity"
在这些其他人身上,我看到:
"Login Activity"
"Connect Activity2"
"Connect Activity1"
"Login Activity"
是否有一个选项可以控制设备/操作系统上的这种行为?或者在我的应用程序中我需要在转换到“家”时做些什么来决定它如何返回到我的应用程序(如果是这样,为什么有时只需要)?