2

通知をクリックすると、次が適用されます。

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

アプリのすべての「startActivity」で、次のフラグを適用しました。

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

私の通知の startActivity は次のことを行います: アクティビティ "Splash" を呼び出し、"Main" と呼ばれます。

Casulidad 「メイン」パルス通知にいた場合は、現在を閉じます (正常に動作しています)。しかし、アクティビティ「ニュース」にいて通知をパルスすると、新しい「メイン」と以前の「ニュース」の 2 つのアクティビティが開いています。

通知をクリックしてアプリケーションのアクティビティを終了するにはどうすればよいですか?

4

2 に答える 2

7

通知に PendingIntent を設定できます。これは、broadcastReceiver のアクティビティによってキャッチされます。次に、アクティビティの broadcastReceiver で、finish(); This を呼び出して、アクティビティを閉じます。

つまり、これをアクティビティに入れます

BroadcastReceiver mReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        finish();
    }

};

これはあなたのonCreate()

IntentFilter filter = new IntentFilter("android.intent.CLOSE_ACTIVITY");
registerReceiver(mReceiver, filter);

そして、通知の PendingIntent に"android.intent.CLOSE_ACTIVITY"は、アクティビティのパッケージの安全のために、アクションが必要です。

これは

Intent intent = new Intent("android.intent.CLOSE_ACTIVITY");
PendingIntent pIntent = PendingIntent.getBroadcast(context, 0 , intent, 0);

次にsetContentIntent(pIntent)、Notification.Builder で通知を作成するときに を使用して、通知に追加します。

于 2013-10-08T08:58:45.853 に答える