嗨,我已经找到了这个问题但找不到了,所以这里就是......
我的应用程序以登录活动开始,该活动记录用户。验证成功后,初始启动器活动将被“内容”活动替换。
一切正常,直到我通过主页按钮将应用程序放在后台并启动一些消耗内存的应用程序。
在返回我的应用程序后,Android会尝试在活动堆栈的顶部重新创建活动,但我想要的是重新启动登录活动。
原因是由于与服务器通信不活跃而需要再次重新验证用户。
有没有办法在Manifest.xml文件中或以编程方式指定此行为?
我知道保存/恢复活动状态,但在这种情况下,我希望应用程序使用登录活动重新启动,从而绕过不必要的恢复。 (由于不活动,用户必须再次登录)
感谢您的帮助!
更新:问题出现时,我的应用程序进程被Android杀死,以回收正被加载的其他应用程序使用的内存。我的应用程序在此时仍然存在的唯一方面是活动堆栈,其顶部条目是我的MainActivity。这是因为活动堆栈不在应用程序进程中。
因此Android试图对用户很好,并尝试恢复MainActivity的状态。但是,我在此时对我的服务器进行身份验证的能力已经消失,因为用户的凭据已经从内存中与使用内存的任何内容一起擦除。
因此,我不想在这些条件下尝试恢复我的MainActivity,而是希望我的应用程序从Manifest.xml文件中指定为LAUNCHER活动的活动开始。此活动实现登录过程,该过程从用户获取凭证并设置与任何特定活动无关的各种单身人士。注意:我不希望出于各种原因持久保存凭据或cookie,因此这不是一种选择。