显示后通知自动消失

Notification auto disappear after showing

public class AlarmReceiver extends BroadcastReceiver {


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


    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

        intent = new Intent(context, AlertDialog.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); // added new line
        intent.putExtra("STARTED_BY_RECEIVER", true);

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        String CHANNEL_ID = "channel id";// The id of the channel.
        CharSequence name = "Channel";
        int importance = NotificationManager.IMPORTANCE_HIGH;
        NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);

        Notification notification = new Notification.Builder(context)
                .setContentIntent(pendingIntent)
                .setContentText("Some Text")
                .setContentTitle("Notification")
                .setAutoCancel(true)
                .setOngoing(true)
                .setSmallIcon(R.drawable.ic_notification_praying)
                .setChannelId(CHANNEL_ID)
                .build();
        notificationManager.createNotificationChannel(mChannel);

        notificationManager.notify(100 , notification);


    } else {
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);

        intent = new Intent(context, AlertDialog.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); // added new line
        intent.putExtra("STARTED_BY_RECEIVER", true);

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(context)
                .setSmallIcon(R.drawable.ic_notification_praying)
                .setContentIntent(pendingIntent)
                .setContentText("Some Text")
                .setContentTitle("Notification")
                .setAutoCancel(true)
                .setOngoing(true);
        Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        builder.setSound(alarmSound);
        notificationManager.notify(100, builder.build());
    }

}

我制作了一个应用程序,它按时显示用户在主要 activity 中选择的通知,只有当用户点击通知时通知才会消失,否则不会..除非我更新,否则它工作正常我的 phone 到 android Oreo (8.0) 现在通知显示在某个时间但在一段时间后自动消失.. 如何使通知不自动消失(在 android Oreo 中)但只有当用户点击是吗?

好的,我明白了。是电池优化选项杀死了我的应用程序,所以这就是通知消失的原因。我从自动优化中删除了我的应用程序,现在它工作正常。