setOngoing(true)在Oreo +通知中不起作用

时间:2018-09-30 18:21:16

标签: notifications android-8.1-oreo

我正在使用channel_id创建自定义通知,并将其作为前台启动。我正在播放背景音乐.. 我的问题是用户滑动通知消失时。我也有setOngoing(true)。我想在音乐播放时保留通知。

注意:它仅在Oreo +中发生。在较低版本中,它工作正常。

public void CustomNotification() {
    remoteViews = new RemoteViews(getPackageName(), R.layout.player_noti_layout);
    notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel("default",
                getString(R.string.player_channel),
                NotificationManager.IMPORTANCE_LOW);
        channel.enableVibration(true);
        channel.enableLights(true);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
        channel.setDescription("Notification, Play/pause & Next/Prev");
        notificationmanager.createNotificationChannel(channel);
    }
    builder = new NotificationCompat.Builder(this, "default");
    Notification foregroundNote;

    // Set icon
    foregroundNote = builder.setSmallIcon(R.drawable.ic_radio)
           .setLargeIcon(R.drawable.cool_1)
            // Set ticker message
            .setTicker(getResources().getString(R.string.app_name))
            // Dismiss notification
            .setAutoCancel(false)
            .setOngoing(true)
          .setContent(remoteViews)
            .setContentTitle("title").
                    setContentText("text")
            .build();
    foregroundNote.flags |= Notification.FLAG_ONGOING_EVENT;
    foregroundNote.flags |= Notification.FLAG_NO_CLEAR;


    foregroundNote.contentView = remoteViews;


    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
        startForeground(2, foregroundNote);
    } else
        notificationmanager.notify(2, foregroundNote);


}

1 个答案:

答案 0 :(得分:0)

简而言之,这是由于碎片和自定义。可能该电话具有某种设置来配置该行为。就像某天说的那样:有些电话只是垃圾箱。不要浪费时间尝试为每个可能的电话解决问题。