2011-08-18 115 views
1

未运行,我已经开发使用的PhoneGap读取使用Google-Feed API跨域RSS订阅和发送系统通知用户是否有新的饲料可用的Web应用程序。系统通知在后台

我已经使用此Phonegap System Notification Plugin来创建推送通知。

这是插件附带的SystemNotificaton.java

这是该插件附带的SystemNotification.js文件,该文件包含可在JavaScript文件中使用的所有方法。

这是我notification.js JavaScript文件中我已经创建了两个函数来读取两个独立的RSS订阅网址​​,我已经使用setIntervals调用函数每隔1个min.I也呼吁navigator.systemNotification.onBackground();方法在同一个函数中,这样当我的应用程序不活动时,这个函数会在后台运行,并在出现新的提要时向用户显示通知。

问题是,一旦应用程序启动,我就会收到通知,然后当我关闭应用程序时,我会收到几个通知,一两天后通知就会停止。我知道,因为我使用的是谷歌饲料api它不是实时的,但即使两天后它仍然无法正常工作。它看起来像onbackground方法不工作。任何人都可以指出我在做什么错误。

回答

2

我对Phonegap了解不多,但我对Android开发知之甚少,听起来像是通知不是您的问题。 (顺便说一下,这些只是通知,而不是“推送”通知,这些都是另一种野兽)。

我怀疑你的应用程序只是简单地停下来,而你没有任何设置来启动备份。 Android操作系统会因各种原因杀死任何后台应用程序。如果作为一项服务实施,操作系统应该在某个时候重新启动它,但这并不完全可靠。

基本上,你需要设置一个闹钟来照顾你的服务,并确保它保持活着。如果在PhoneGap中这是可能的,我建议完全摆脱setInterval,并使用闹钟来唤醒您的应用程序并触发RSS轮询操作。这样做的好处是它在设备进入睡眠状态时仍然可以工作。

做了一些快速搜索似乎表明PhoneGap无法访问AlarmManager。也许可以用插件来完成,但PhoneGap并不会将我作为一般的后台服务的良好框架。一个真正的本地应用程序在这种情况下会表现得更好。