活动A是我的主屏幕,用户可以导航到B,C,D。因此,在正常情况下,用户将从A创建活动B,并且堆栈看起来像A-> B。从B按回来会带您回到A。
我有另一个活动B(用于NFC)的意图设置,因此B可以在特殊情况下直接启动。在这种情况下,按下后面只会让我回到主屏幕。我需要后退按钮将用户带回主要活动(A)。
如何通过直接操作堆栈来实现此目的?如果这是不可能的,那么最好的替代方案是什么?
答案 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);
}