活动订单问题

时间:2014-02-27 09:53:54

标签: android

让我们马上回答我的问题:

我有三项活动:A,B,C。

  • 活动A首先运行,然后调用B(没有完成A)。
  • 之后,B呼叫活动C(没有完成B) flag:Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP。 现在堆栈就像A - B - C(C是顶部)。

  • 来自C的
  • (现在顶部)我用标志回调活动B. Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP

所以现在,堆栈喜欢A - C - B(我说,C现在是B的背景)

但是我希望A成为B的背景。(就像三张照片一样,我希望图片A一如既往地是图片B的背景)

那么有什么方法可以隐藏活动C,或者将它重新排序到堆栈底部或任何其他解决方案?

非常感谢!

3 个答案:

答案 0 :(得分:0)

From the Docs:

如果您的应用支持Android 4.0及更低版本,请在您的应用中添加支持库,并在其中添加元素。然后将父活动指定为android.support.PARENT_ACTIVITY的值,与android:parentActivityName属性匹配。

<application ... >
    ...
    <!-- The main/home activity (it has no parent activity) -->
    <activity
        android:name="com.example.myfirstapp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.myfirstapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
</application>

答案 1 :(得分:0)

简单的解决方案是在返回活动B时完成活动C.

ActivityC.this.finish();

希望这有帮助。

答案 2 :(得分:0)

您可以尝试这样:

  • A(没有完成) - &gt; B(没有完成) - &gt; C(Stack = A - B - C)
  • C(On Back finish) - &gt; B(堆栈= A - B)(C现已消失)