我注册如下通知:
var date= new Date();
date.setHour(15);
date.setMinutes(10);
window.plugin.notification.local.add({
id: "p10", // A unique id of the notification
date: date, // This expects a date object
message: "Notification appear", // The message that is displayed
title: "hi", // The title of the message
json: String, // Data to be passed through the notification
autoCancel: true, // Setting this flag and the notification is automatically cancelled when the user clicks it
}, callback, scope);
这项工作正常,但如果我更改我的移动时间,则此通知不会显示?
如果我根据提醒时间更改我的移动时间,那么我没有收到警报。 为什么?
答案 0 :(得分:0)
由于您未在问题上指定任何特定平台或插件,我可以自由地使用Cordova Local-Notification Plugin在Android上进行检查。经过广泛的源代码阅读后,我终于找到了(here方法 add ),实现使用AlarmManager来处理应用程序的唤醒,以便在后台处理时发出通知。
在查看AlarmManager之后,我很快发现,如果手动更改时间,它确实不起作用。相反,您应该自己跟踪应用程序的时间机会,然后重新创建AlarmManager的警报,如果发现这样的修改。要在Android上跟踪的事件是
Intent.ACTION_TIME_TICK
Intent.ACTION_TIMEZONE_CHANGED
Intent.ACTION_TIME_CHANGED
由Pankaj Kumar讲述。
此外,用户[用户:Lucifer]有this获奖赏心悦目的答案:即使重启后警报管理器仍然存在吗?。据他说,简单的答案是没有。有关更详细的说明,请参阅他的帖子。