如何在android中的片段中创建特定日期和时间的通知

如何在android中的片段中创建特定日期和时间的通知,android,android-fragments,push-notification,Android,Android Fragments,Push Notification,My fragment类包含以下代码: Intent intent = new Intent(getActivity(), AlarmReceiver.class); intent.putExtra("notificationId", notificationId); intent.putExtra("todo",hello); PendingIntent alarmIntent = PendingIntent.getBroadcast(getActivity(), 0,

My fragment类包含以下代码:

Intent intent = new Intent(getActivity(), AlarmReceiver.class);

intent.putExtra("notificationId", notificationId);

intent.putExtra("todo",hello);

PendingIntent alarmIntent = PendingIntent.getBroadcast(getActivity(), 0,
            intent, PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager alarm = (AlarmManager) getActivity().getSystemService(ALARM_SERVICE);

Calendar startTime = Calendar.getInstance();

startTime.set(2018,3,18,20,30,0);

long alarmStartTime = startTime.getTimeInMillis();

alarm.set(AlarmManager.RTC_WAKEUP, alarmStartTime, alarmIntent);
AlarmReceiver.class包含以下内容

public class AlarmReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

    // Get id & message from intent.
    int notificationId = intent.getIntExtra("notificationId", 0);
    String message = intent.getStringExtra("todo");

    // When notification is tapped, call MainActivity.
    Intent mainIntent = new Intent(context, MainActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, mainIntent, 0);

    NotificationManager myNotificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    // Prepare notification.
    Notification.Builder builder = new Notification.Builder(context);
    builder.setSmallIcon(android.R.drawable.ic_dialog_info)
            .setContentTitle("It's Time!")
            .setContentText(message)
            .setWhen(System.currentTimeMillis())
            .setAutoCancel(true)
            .setContentIntent(contentIntent)
            .setPriority(Notification.PRIORITY_MAX)
            .setDefaults(Notification.DEFAULT_ALL);

    // Notify
    myNotificationManager.notify(notificationId, builder.build());

}
}
运行应用程序时,不会在2018年4月18日下午8:30创建通知


向我建议一些更改,以便我可以很好地运行此应用。

尝试更改标志
pendingent。标志\u CANCEL\u CURRENT

pendingent.FLAG\u UPDATE\u CURRENT


我希望这有帮助

欢迎来到Stack Overflow!现在很难理解你在问什么。请提供一份报告。为了有效地帮助您,我们需要重现您描述的问题。您能看一下您的代码格式吗?我只想通过一个片段类在指定的日期和时间生成一个通知。你能给我一个简短的密码吗。。非常感谢您在
AlarmReceiver
的清单中是否有
元素?如果是,是否在正确的位置;i、 例如,在
标记之间,但不在任何其他标记内?听筒到底在开吗?你是怎么决定的?你在测试哪个版本的Android?从API级别26(Oreo)开始,
通知要求您使用频道。谢谢MIKE。。。我的清单文件中缺少标记否。。。什么也没发生