首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中后台堆栈的修改

Android中后台堆栈的修改
EN

Stack Overflow用户
提问于 2012-07-07 01:08:33
回答 2查看 3.8K关注 0票数 6

我想修改我的Android应用程序中的后栈,如下所示:

现在,流程如下:

A -> B -> C -> D -> E -> F

我希望能够修改后台堆栈,这样当用户转到活动F时,D和E就会从堆栈中擦除。因此,如果用户击中背部,则流是F -> C。

此外,用户可以从F转到活动B,这应该也会删除C、D、E和F。

我已经看到了一些关于能够清除堆栈或删除顶部项的信息,但我想在触发活动时从堆栈中删除一些项。

感谢您的帮助,非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-07 01:35:55

您可以使用从F到C的标志intent.FLAG_ACTIVITY_CLEAR_TOP构建一个intent,然后您必须使用intent调用startActivity()并触发它发生onBackPressed或类似的事情。

代码语言:javascript
复制
Intent i = new Intent(this, C.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i)

请看这个答案,它还涉及到确保当您导航回C时不会重新启动它:https://stackoverflow.com/a/11347608/1003511

FLAG_ACTIVITY_CLEAR_TOP要做的是返回到堆栈中activity C的最新实例,然后清除它上面的所有内容。但是,这可能会导致重新创建活动。如果您希望确保它与活动的实例相同,也可以使用FLAG_ACTIVITY_SINGLE_TOP。从文档中:

在上面的示例中,当前正在运行的activity B实例将在其onNewIntent()方法中接收您在此处启动的新意图,或者使用新的意图完成并重新启动它自己。如果它已将其启动模式声明为"multiple“(默认值),并且您没有以相同的目的设置FLAG_ACTIVITY_SINGLE_TOP,那么它将完成并重新创建;对于所有其他启动模式,或者如果设置了FLAG_ACTIVITY_SINGLE_TOP,则此意图将被传递到当前实例的onNewIntent()。

编辑:这是一个类似于你想要做的代码示例:

代码语言:javascript
复制
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Intent a = new Intent(this, C.class);
        a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivity(a);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

代码样例来源:https://stackoverflow.com/a/9398171/1003511

票数 10
EN

Stack Overflow用户

发布于 2012-07-07 01:14:56

您需要的是android:excludeFromRecents="true",它必须添加到清单文件的活动标签中。它会停止所有进入堆栈的活动,这些活动在清单中的活动标记中有此标记。

示例代码

代码语言:javascript
复制
 <activity
            android:name="com.xx.xx.ActivityName"
            android:excludeFromRecents="true"


        </activity>

并确保您在那些您不想在活动堆栈上的活动中调用finish()(在启动另一个活动之后)方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11366700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档