0

アクティビティAは、ユーザーがB、C、Dに移動できるメイン画面です。したがって、通常の状況では、ユーザーはAからアクティビティBを作成し、スタックはA->Bのようになります。Bから押し戻すと、Aに戻ります。

アクティビティB(NFC用)の別のインテント設定があるので、特別な状況でBを直接起動できます。この場合、押し戻すとホーム画面に戻ります。ユーザーをメインアクティビティ(A)に戻すには、戻るボタンが必要です。

スタックを直接操作してこれを実現するにはどうすればよいですか?これが不可能な場合、最善の選択肢は何ですか?

4

1 に答える 1

0

アクティビティAのインテントでエクストラを使用して呼び出し元の「名前」を渡し、アクティビティを離れるときにこれらのインテントを確認して、メインアクティビティの新しいインテントを作成するか、それに応じて停止させます。

アクティビティAで、Bを呼び出す場合:

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

アクティビティB:

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

アクティビティBを停止するときに、呼び出し元がActivityAでない場合は、アクティビティBを開始します。

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