带有多个可能父项的向上按钮,可以进一步返回活动堆栈

时间:2014-10-15 07:58:10

标签: android

我在决定如何处理UP按钮时遇到问题。

活动C和D是查看下载资料的两种方式。 活动B是在已下载的资料中进行选择。 活动A是起始活动,也是选择下载材料的活动。

堆栈可能如下所示:

A,B,C,D

A,B,D,C

A,B,C

A,B,D

堆栈看起来可能与B相同:

A,C,D

A,D,C

A,C

A,D

B的父母显然是A: 父母(B)= A

然而,C和D的父母更棘手。我认为用户会假设他们会返回选择另一个已下载的材料,如果这是他们事先做的。否则他们会认为他们会回到应用程序的开头: 父(C)=父(D)=" B如果它存在于堆栈中;否则"

两个问题:

1)似乎导航的官方Android指南仅考虑活动将一个活动作为父级的可能性。

2)我无法找到一种优雅的方法来实现这一点(它支持问题1)。但是,我考虑过解决方案a和b:

a)通过onNewIntent链将每个活动弹出到父级,直到A或B的onNewIntent停止它。以先到者为准。

b)具有静态堆栈结构,在其上推送和弹出父项,以便C或D活动可以直接转到A或B.无论哪个位于父堆栈的顶部。

1 个答案:

答案 0 :(得分:0)

我选择了第三种解决方案:

我在C和D中有一个额外的名为parentString.A和B在启动时给C和D提供了适当的parentString。 C和D将它传递给另一个。当在C和D中选择向上按钮时,parentString用于确定要弹回的活动。

我将活动'class.toString用作parentString。