私は自分のサービスにこのFLAGを使用しました:Notification.FLAG_FOREGROUND_SERVICE; しかし、notificationManager.cancel(IDN)を呼び出すと、アイコンは常にステータスバーに表示されます。notificationManager.cancel(IDN)を呼び出すときにNotification.FLAG_AUTO_CANCELでFLAGを変更すると、アイコンが消えます。FLAG_FOREGROUND_SERVICEを使用してからアイコンをキャンセルするにはどうすればよいですか?
3 に答える
質問があるかどうかはわかりませんが、次を使用してアプリからのすべての通知をキャンセルできます。
final NotificationManager mNotificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
フォアグラウンド サービスについては、こちらを参照してください
この通知が現在実行中のサービスを表す場合に設定する必要がある flags フィールドにビットごとに ored されるビット。これは通常、startForeground(int, Notification) によって設定されます。"
これに苦労している可能性のある他の人を助けるために、FLAG_FOREGORUND_SERVICE のドキュメントで、このフラグのユーザーは nm.cancel() を使用できず、startForeground/stopForeground ペアを使用する必要があることがより強く示されていると、本当に役に立ちます。おそらく次のようなものです:
「現在実行中のサービスのフォアグラウンド ステータスを示すためにフラグ フィールドにビット単位で論理和されるビット。このフラグを直接使用するべきではありませんが、startForeground() で設定し、stopForeground(true) を使用して削除してください。」
私が使用した:
public final void startForeground (int id, Notification notification)
通知が取り消される可能性があります。