如何清除以前的所有活动〜?

时间:2013-05-22 08:51:12

标签: android android-activity

我的应用中的活动流程。

  

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


Activity Stack


我想在启动TabsActivity时关闭所有以前的活动(欢迎,SignIn,SignUp)。

我尝试了几种方法......

  1. TabsActivity。启动时清除任务= true?但没有工作(也许)

  2. TabsActivity。启动模式= singleTask?但没有工作

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

    视情况而定,“有2或4项活动不是3”,或 “我不知道活动堆栈中有哪些活动。”


    我希望清除以前的所有活动,无论情况如何。

    帮帮我:)

    抱歉,我的英语很差......谢谢。

6 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

尝试按照FLAG_ACTIVITY_NEW_TASK的文档中所述添加FLAG_ACTIVITY_CLEAR_TOP

  

此启动模式也可用于   结合良好的效果   FLAG_ACTIVITY_NEW_TASK:如果习惯的话   它启动任务的根活动   会带来任何正在运行的   该任务的实例   前景,然后清除它   根状态。这特别有用,   例如,启动时   来自通知的活动   管理器。

Intent intent = new Intent(this, TabActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

答案 2 :(得分:1)

试试这个,

Clear all Activies。这里有一些很好的教程来解决清晰的堆栈竞争。请仔细阅读。

由于

答案 3 :(得分:0)

Android的

清除Backstack ,您可以从中调用tabActivity

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 4 :(得分:0)

使用

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

这将完成之前的活动

答案 5 :(得分:0)

要关闭以前的活动,你应该使用startActivityForResult启动New Activity,然后在使用finish()调用结束当前Activity,为之前的Activity调用setResult(value)之前,之前的Activity将获得一个可以调用finish的回调( )用于上一个活动。

相关问题