我研究了一下,发现的唯一答案就是:


如何禁止下拉通知栏。
如何使用以下方法取消通知:

NotificationManager notificationManager =(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.cancel(0);


由于通知被取消,这两个都不是我所需要的。我在通知中设置了两个操作:“关闭”和“打开活动”。顾名思义,在单击这两个代码时,上面的代码将执行并清除通知,但不会导致通知栏回退。这是必需的,特别是在第二个Notification Action导致Activity启动时。

我在Android Lollipop和Nougat上尝试过,通知栏都没有恢复。因此,是否有人可以告诉我这是否可行以及如何实现。
谢谢。

用于构建通知的代码:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);

    builder
            .setSmallIcon(icon).setTicker(message).setWhen(when)
            .setAutoCancel(true).setContentTitle("Kindly record your Voice")
            .setColor(Color.RED);


    notificationIntent = new Intent(this,ReminderReceiver.class);
    notificationIntent.setAction("Record");
    PendingIntent pendIntent1 = PendingIntent.getBroadcast(getApplicationContext(), 1, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.addAction(R.drawable.common_google_signin_btn_icon_dark, "Record", pendIntent1);


    notificationIntent2 = new Intent(this, ReminderReceiver.class);
    notificationIntent2.setAction("Dismissed");

    PendingIntent pendIntent2 = PendingIntent.getBroadcast(getApplicationContext(), 1, notificationIntent2, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.addAction(R.drawable.starticon, "Dismiss", pendIntent2);

    notificationIntent3 = new Intent(this, CancelReceiver.class);
    PendingIntent pendIntent3 = PendingIntent.getBroadcast(getApplicationContext(), 1, notificationIntent3, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setDeleteIntent(pendIntent3);

    notification = builder.build();


    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(1, notification);

最佳答案

可能看起来很怪异,但是当存在其他通知时,通知栏不会上升。如果您的通知是唯一的,则单击后栏会自动向上滑动。

10-02 06:15
查看更多