根据移动设备中的警报注册时间,时间变化时,不会显示通知警报

时间:2015-01-08 15:16:48

标签: cordova notifications localnotification

我注册如下通知:

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);

这项工作正常,但如果我更改我的移动时间,则此通知不会显示?

如果我根据提醒时间更改我的移动时间,那么我没有收到警报。 为什么?

1 个答案:

答案 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获奖赏心悦目的答案:即使重启后警报管理器仍然存在吗?。据他说,简单的答案是没有。有关更详细的说明,请参阅他的帖子。