ブロードキャスト受信者操作の後に私のアプリケーションを開く必要があります。しかし、私のアプリが現時点で開かれていれば、以前のMainActivityを削除し、新しいMainActivityを作成する必要があります。どのように放送受信機からMainActivityを開始し、以前のMainActivityを削除するか?ブロードキャスト受信者の後の2つの主な活動
放送:
Intent initialIntent = context.getPackageManager().getLaunchIntentForPackage("com.cc.dd");
initialIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
initialIntent.putExtra(Constants.NUMBER,getIncomingNumber(mCallState));
context.startActivity(initialIntent);
私はフラグを使用しようとしましたが、私は奇妙なログを持っている:
D/CallReceiver:メイン:[RINGING]
D/CallReceiver:メイン:[着信をtrue]
D/MainActivity:メイン:[ON_PAUSE]
D/MainActivity:メイン:[ON_CREATE]
D/MainActivity:メイン:[ON_START]
D/MainActivity:メイン:[ON_RESUME]
私はMainActivity以前のバージョンはonPauseと新しいバージョンの開始に行く参照してください。なぜ以前のバージョンでは削除されないのですか?
「android:launchMode = "singleInstance"」をマニフェストのアクティビティタグに追加できます。それはあなたの活動が一度だけ開かれることを保証します.... – Opiatefuchs
あなたが直面している問題は何ですか –
したがって、以前のすべての活動を殺すには、これらの方法に従ってください。 APIレベル11以上では、インテントのFLAG_ACTIVITY_CLEAR_TASKフラグとFLAG_ACTIVITY_NEW_TASKフラグを使用して、すべてのアクティビティスタックをクリアします。 initialIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK |インテント.FLAG_ACTIVITY_NEW_TASK); もう一つの方法は、アンドロイド:launchMode = "singleInstance" Opiatefuchsの発言です。 – YLS