0

Activity A 是我的主屏幕,用户可以在其中导航到 B、C、D。所以在正常情况下,用户会从 A 创建 Activity B,堆栈看起来像 A->B。从 B 按下返回会将您带回 A。

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

如何通过直接操作堆栈来完成此操作?如果这不可能,最好的选择是什么?

4

1 回答 1

0

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

在Activity A中,调用B时:

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

在活动 B 中:

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

停止活动 B 时,如果调用者不是 ActivityA,则启动它。

if(!caller.equals("ActivityA")) {
   Intent intent = new Intent(this, ActivityA.class);
   startActivity(intent);
}
于 2013-01-15T20:34:54.493 回答