アプリを最初に起動したときにのみ通知を作成したい。その後、通知は永続的であるため、クリックするとアプリが起動しますが、消えることはありません。
ただし、アクティビティのonCreate()で通知を作成するため、通知をクリックするたびに、新しい通知が作成されます。
どうすればこれを防ぐことができますか?現在の通知が実行されているかどうかを確認する方法はありますか?
@Override
protected void onCreate(Bundle savedInstanceState) {
Notification.Builder mBuilder =
new Notification.Builder(this)
.setSmallIcon(R.drawable.not_norm_icon)
.setContentTitle("test")
.setContentText("test");
Intent resultIntent = new Intent(this,MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
Notification n = mBuilder.build();
n.flags |= Notification.FLAG_NO_CLEAR;
if (mNotificationManager != null) {
mNotificationManager.notify(mNotificationId, n);
}}
この行を追加すると、クリック時に通知をクリアできます
mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加