2

我有一个 Phonegap 应用程序,可作为特定人群的通信服务。使用在 phonegap-plugins GitHub 页面上找到的本地通知插件,我在应用程序中实现了通知,这样每当有人收到新消息时,如果应用程序在后台,就会出现通知。

但是,大约一个小时后,将不再出现通知,并且该进程似乎已被终止。当我回到应用程序时,它会完全重新开始,而不是从我上次停止的地方恢复。我假设在一段时间后,Android 停止在后台运行该应用程序。

有谁知道如何让应用程序在后台运行,直到用户告诉它停止,并防止 Android 终止进程?

4

1 回答 1

5

正如 CommonsWare 所建议的那样,您可以编写一个虚拟服务来保持您的应用程序活着,而且正如他正确地建议的那样,如果您要努力编写一个本机虚拟服务,您最好在本地编写实际服务并且已经完成了。

作为一种快速而肮脏的解决方案,您可以使用部分唤醒锁(请参见此处)来保持 CPU 在后台运行您的应用程序。

我成功地使用这种方法让基于 Phonegap 的步行导航应用程序在后台保持活动状态,以便它们可以继续接收和处理位置更新。

在你的情况下,保持活着接收通知并不是部分唤醒锁的目的,所以我不确定android是否会在一段时间后杀死你的应用程序,因为它没有做任何事情(不像我的不断接收和处理位置更新),但它可能无需编写服务即可完成工作,因此值得一试。

看看我对这个问题的回答,其中包含我的 Android PowerManagement 插件更新版本的代码。我更新了与 Cordova 2.8.0 一起使用的插件,但也将其扩展为能够获取部分唤醒锁。

于 2013-06-22T16:13:49.630 回答