2016-03-12 3 views
7

アンドロイドアプリを作成中です。特定のタグを持つすべての通知をキャンセルしたいと思います。特定のタグを持つすべての通知をキャンセルすることはできますか?

今のところ、id(int id)またはidとタグの両方で通知をキャンセルすることしかできないようです。

mNotificationManager.cancel(int id);

又は

mNotificationManager.cancel(文字列タグ、int型のID);

int idに関係なく、Stringタグのすべての通知をキャンセルしたいと考えています。

これは可能ですか?

答えて

5

いいえ、そうではありません。 Notificationが設定される方法は、idが主キーです。タグ付きサブキーを追加して、そのように個々の(タグ、ID)ペアを取り消すことはできますが、タグだけに基づいて取り消すことはできません。実際には、タグパラメータを追加した理由はわかりませんが、おそらく文字列パラメータがデバッグを容易にする点を除いて、むしろ冗長に見えます。

+6

タグは、通知を使用して複数のコンポーネントを持つアプリを開発する場合に非常に便利です。各コンポーネントにタグを設定すると、すべてのコンポーネントのコンテキストでIDの一意性について心配する必要はありません。彼らはローカルでユニークでなければなりません。 – Nedko

+0

@Nedkoあなたが話しているコンポーネントについて教えてください。 'tag'のコード例を教えていただけますか? – UnKnown

+0

@Gabeどのように 'タグ'デバッグの目的に役立つ可能性がありますか? – UnKnown

1

Android API> = 23では、このようにいくつかの通知を行い、通知のグループを削除できます。 ため(StatusBarNotification statusBarNotification:mNotificationManager.getActiveNotifications()){ IF(KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())){ mNotificationManager.cancel(statusBarNotification.getId())。 } }

1

通知グループを使用すると考えられます。グループサマリ通知をキャンセルすると、グループ全体がキャンセルされるようです。

関連する問題