我的应用程序工作如下:
开始时,我有一些 AppStartActivity
,它会执行一些操作,自行完成并在用户登录时启动 MainActivity
,否则启动 LoginActivity
。
LoginActivity
完成自身并在用户成功登录时启动 MainActivity
。
在 MainActivity
上,我有 SomeActivity
,用户可以从中注销。这种情况下的 Activity 堆栈是 MainActivity > SomeActivity
。这是正确的,后退按钮效果很好。当用户单击 LogOut
按钮时出现问题。我需要显示 LoginActivity
,但我不想在 Activity 堆栈上再有 MainActivity
和 SomeActivity
。
如果我不完成 AppStartActivity
,我可以解决这个问题。我可以使用标志 FLAG_ACTIVITY_CLEAR_TOP
返回,它会很好地工作。但这是后退按钮的问题。我不希望用户使用后退按钮返回此 Activity 。我希望它退出应用程序。
更新:
标记 FLAG_ACTIVITY_NEW_TASK
和 FLAG_ACTIVITY_CLEAR_TASK
最好,但我需要它在 API 级别 9 中工作。
最佳答案
当用户想要注销时,你只需启动MainActivity
与 Intent.FLAG_ACTIVITY_CLEAR_TOP
并在 Intent
中额外传递它这告诉MainActivity
用户注销。 MainActivity
然后可以立即启动 LoginActivity
并自行完成。
请参阅我对 Remove top activity from stack android 的回答有关如何执行此操作的更多详细信息。
关于java - android中的幽灵 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19861406/