我正在尝试使用Android的通知管理器创建通知,但诀窍是我希望通知在将来30天内显示。在我的代码中,我正在这样做:
Intent notificationIntent = new Intent(this, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
long when = System.currentTimeMillis() + (30 * 24 * 3600 * 1000);
Notification notification = new Notification(R.drawable.some_image, "A title", when);
notification.setLatestEventInfo(getApplicationContext(), "You're late", "Some description", contentIntent);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify(NOTIFY_ATTEND_ID, notification);
但是,通知仍然会立即显示。根据我的阅读,Notification构造函数的“when”参数仅用于对StatusBar中的通知进行排序。无论如何要在未来的日期/时间显示通知吗?提前致谢。
答案 0 :(得分:4)
是否有通知在未来日期/时间显示?
没有
正如Falmarri建议的那样,你需要自己处理,尽管我不同意他的做法。您需要使用AlarmManager
。但是,我怀疑AlarmManager
将持续30天,但你可以试试。您可能需要使用AlarmManager
进行每日/每周任务,以通过单独的警报安排当天/周的通知。正如Falmarri建议的那样,你还需要在重新启动时重新构建这个警报列表,因为它们会被擦除。