0

アクティビティAはランチャー アクティビティです。着信メッセージを受信して​​アクティビティを呼び出すブロードキャストレシーバーがありますB(メッセージを表示するためのポップアップのみ)。

これは私が呼び出すために使用しているコードですB:

intent.setClass(context, popup.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);

アクティビティBが呼び出されるたびAに、バックグラウンドにある場合でも、その背後 (フォアグラウンド) に移動します。Aレシーバーのどこにも呼び出されません。

背後に表示Bせずに呼び出すにはどうすればよいですか?A

4

1 に答える 1

0

アクティビティBには、ActivityAとは異なるtaskAffinityが必要です。マニフェストで、これをActivityBの`タグに追加します。

android:taskAffinity=""

あなたがしていることをするとき、AndroidがActivityBを開始したいとき、それはActivityBと同じtaskAffinityを持つ既存のタスクを見つけて、そのタスクをフォアグラウンドに持ってきます(あなたがNEW_TASKが欲しいと指定したとしても)。これは機能であり、バグではありません;-)

于 2012-07-27T19:39:11.927 に答える