操纵活动堆栈返回主屏幕

时间:2013-01-15 20:29:26

标签: java android

活动A是我的主屏幕,用户可以导航到B,C,D。因此,在正常情况下,用户将从A创建活动B,并且堆栈看起来像A-> B。从B按回来会带您回到A。

我有另一个活动B(用于NFC)的意图设置,因此B可以在特殊情况下直接启动。在这种情况下,按下后面只会让我回到主屏幕。我需要后退按钮将用户带回主要活动(A)。

如何通过直接操作堆栈来实现此目的?如果这是不可能的,那么最好的替代方案是什么?

1 个答案:

答案 0 :(得分:0)

在活动A的意图中使用额外内容以传递"名称"调用者,然后在离开活动时检查这些意图,并为主要活动创建一个新的意图,或者让它相应地停止。

在活动A中,当呼叫B:

Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("caller", "ActivityA");
startActivity(intent);

在活动B中:

String caller = getIntent().getStringExtra("caller");

当停止活动B时,如果呼叫者不是活动A,则启动它。

if(!caller.equals("ActivityA")) {
   Intent intent = new Intent(this, ActivityA.class);
   startActivity(intent);
}