发送带有选项的即时通知

Sending immediate notification with options

所以我有一个使用 AlarmManager 的计时器,一旦它达到 0,我希望它根据用户的选择(是否振动、是否播放声音、是否显示文本、显示。 .. 下拉托盘中的矩形东西,不管它叫什么等等)。

我不确定此处预期使用的 class 是什么,因为它是即时的,即在警报管理器已经达到 0 之后,我现在处于广播接收器的 onReceive() 方法中,所以我认为此时我不需要使用 PendingIntent。

我使用NotificationCompat.Builder吗?它会做我需要的一切吗?如果是这样,我使用支持 v4 还是 v7 版本?

试试这个:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(c)
    .setSmallIcon(R.mipmap.ic_launcher)
    .setLargeIcon(BitmapFactory.decodeResource(c.getResources(), R.mipmap.ic_launcher))
    .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
    .setContentText("This text should be in notification drawer!");

NotificationManager notificationManager = (NotificationManager) c.getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
Toast.makeText(c, "Toast text!", Toast.LENGTH_LONG).show();

根据评论中的讨论 -

NotificationCompat.Builder 将完成您需要的所有上述操作。 .build 足以立即发送通知。如果你想设置一个特定的时间,你也可以使用 .setWhen。您可以在此处找到与您需要执行的操作相关的所有方法 - Notification Developer Guide