Java 操纵活动堆栈返回主屏幕

Java 操纵活动堆栈返回主屏幕,java,android,Java,Android,活动A是我的主屏幕,用户可以在其中导航到B、C、D。因此,在正常情况下,用户将从A创建活动B,堆栈将看起来像A->B。从B按后退将返回A 我对活动B(NFC)有另一个意图设置,以便在特殊情况下可以直接启动B。在这种情况下,按back键只会将我带回主屏幕。我需要返回按钮将用户带回主要活动(A) 如何通过直接操作堆栈来实现这一点?如果这是不可能的,那么最好的选择是什么?在活动A的意图中使用额外的内容传递调用者的“姓名”,然后在离开活动时检查这些意图,或者为主活动创建新的意图,或者让它相应地停止 在活

活动A是我的主屏幕,用户可以在其中导航到B、C、D。因此,在正常情况下,用户将从A创建活动B,堆栈将看起来像A->B。从B按后退将返回A

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


如何通过直接操作堆栈来实现这一点?如果这是不可能的,那么最好的选择是什么?

在活动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);
}