【问题标题】:Android How can I "jump to another branch" in the Activity back stack "tree"?Android 如何在 Activity 回栈“树”中“跳转到另一个分支”?
【发布时间】:2015-01-22 20:49:57
【问题描述】:

假设我有一个这样的堆栈:A->B->C->D->E 并且 E 中有一个动作弹出 E、D、C 并开始 F,所以我最终得到 A ->B->F.

我怎样才能建立这样一个后台堆栈?我可以将 startActivity B 与 FLAG_ACTIVITY_CLEAR_TOP 后跟 startActivity F 一起使用吗?在他可以添加 F 之前,第一个 startActivity 不会关闭 E 吗?例如,我怎样才能让 A->B->C 和 C 中的一个动作将其更改为 A->D->E?我可以将 PendingIntent 与 TaskStackBuilder 一起使用吗?

提前致谢! (顺便说一句,这是我的第一个问题!)

【问题讨论】:

    标签: android android-activity back-stack


    【解决方案1】:

    要将堆栈清除回B,然后启动F,请执行以下操作:

    Intent intent = new Intent(this, B.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("startF", true);
    startActivity(intent);
    

    B.onNewIntent() 中这样做:

    if (intent.hasExtra("startF") {
        Intent startF = new Intent(this, F.class);
        startActivity(startF);
    }
    

    你可以到处使用这个概念在堆栈中返回到某个 Activity,并告诉该 Activity 要启动什么新 Activity。

    【讨论】:

    • 哦,我明白了。感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多