如何清除所有先前的活动记录?

4

我的应用程序中的活动流程。

WelcomeActivity -> SignInActivity -> SignUpActivity -> TabsActivity(这是主要的) -> ...


Activity Stack


当启动TabsActivity时,我想关闭所有以前的活动(Welcome、SignIn、SignUp)。

我尝试了几种方法...

  1. TabsActivity. clear task on launch=true ? 但不起作用(也许)

  2. TabsActivity. launch mode = singleTask ? 但不起作用

但我不想“保存3个活动并调用每个activity.finish()”

根据情况,“可用2或4个活动而不是3个”,或者“我不知道活动堆栈中有哪些活动”。


无论任何情况,我都想清除所有以前的活动。

帮帮我 :)

对不起,我的英语很差...谢谢。

4个回答

6

如果我理解正确,您可能想尝试使用以下代码启动您的TabsActivity

    Intent intent = new Intent(getApplicationContext(), TabsActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

标记 Intent.FLAG_ACTIVITY_CLEAR_TOP 会清除历史记录。

0

使用

Intent intent = new Intent(getApplicationContext(), ClassToLaunch.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这将完成之前的活动


0

清除在调用tabActivity时的Android后退栈

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


0
为了关闭之前的活动,您应该使用startActivityForResult启动新的活动,然后在使用finish()结束当前活动之前,为之前的活动调用setResult(value)方法。之前的活动将会得到一个回调,在其中您可以为之前的活动调用finish()方法。

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