我有一个具有“登录”和“注销”操作的应用程序。用户登录后,在他们注销时,堆栈上可能会留下任意数量的活动。
当用户注销时,我希望重置所有应用程序状态。我清除了我的磁盘缓存和首选项,但仍有状态正在运行(暂停)活动。事实上,当用户再次登录时,我发现上一次登录会话中的旧活动仍然以其旧状态存在(我当然明白为什么会这样)。我怎样才能使整个应用程序重置/关闭/重新启动?
我看过一些关于使用startActivityForResult()
,onActivityResult()
冒泡“注销”结果代码的帖子,导致每个活动依次关闭。这看起来很痛苦,我希望有更好的方法。
编辑:我尝试使用各种标志启动“登录”活动无济于事,
loginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);