如何清除Android中的活动堆栈

3
我在我的Android应用程序中有以下应用程序流程,
登录->主页->屏幕1->屏幕2->屏幕3->屏幕4->注销
在屏幕4上,我有一个注销按钮,允许用户从应用程序注销并重新登录。当我重新登录到应用程序时,以前的数据仍然显示。是否有一种方法可以在用户从应用程序注销时重新启动应用程序?
注意:所有上述活动的启动模式设置为“single task”。
4个回答

6

谢谢Kiril的快速回复,我尝试了下面的代码但没有成功。public void signOutHandler(View view) { Intent i = new Intent(this, login.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); } - Sam
我在注销按钮的onclick事件上尝试了上述方法,可能我做错了,您能告诉我应该在哪里定义该属性吗? - Sam

2

当用户单击logout时,您可以设置一个静态标志,并在每个活动中的onResume()检查该标志,如果设置了,则调用finish()。不过这种方法有点hacky。


0

嗯,我不确定这是否是你想要的,但是在启动另一个活动之前完成当前活动并将登录存储在应用程序上下文中是否有帮助?


-1

我认为当用户在手机上点击“主页”或“返回”按钮时,这个属性会很有用。在我的情况下,我需要使用按钮的onClick事件来清除堆栈。 - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接