Java 如何让android服务保持phonegap用户界面的活力

Java 如何让android服务保持phonegap用户界面的活力,java,android,service,cordova,Java,Android,Service,Cordova,我正在开发一个使用phonegap/cordova的android应用程序。此应用程序使用javascript不时从服务器获取内容,并在有新内容时发出systemtray警报。 我所面临的问题是,当安卓系统内存不足时,应用程序最终会退出 所以我在清单中添加了一个服务(每个人都说一个服务可以解决这个问题) 很好,但是仅仅在那里提供这项服务并没有什么作用(很明显)。那么,如何使我的服务触发主应用程序以保持运行呢 补充: 我还设法在我的主应用程序中启动了该服务尝试向AlarmManager注册一个

我正在开发一个使用phonegap/cordova的android应用程序。此应用程序使用javascript不时从服务器获取内容,并在有新内容时发出systemtray警报。 我所面临的问题是,当安卓系统内存不足时,应用程序最终会退出

所以我在清单中添加了一个服务(每个人都说一个服务可以解决这个问题)


很好,但是仅仅在那里提供这项服务并没有什么作用(很明显)。那么,如何使我的服务触发主应用程序以保持运行呢

补充:
我还设法在我的主应用程序中启动了该服务

尝试向AlarmManager注册一个PendingEvent,AlarmManager将检查您的应用程序是否每n毫秒运行一次。如果没有运行,请让服务重新启动应用程序

使用以下代码启动应用程序:

Intent serviceIntent = new Intent("com.myapp.LaunchActivity");
startService(serviceIntent);

用包名和LaunchActivity替换com.myapp.LaunchActivity

在浏览器中使用javascript进行背景检查可能是错误的做法。在java的android服务中进行后台检查(使用http请求或其他方式),并从那里发出警报。只有当你需要一个交互式用户界面时,才打开基于浏览器的javascript,比如说,符合Android Activity模型的东西。这很好,但应用程序必须是多平台的。因此,我使用phonegap和jQueryMobile(ajax)来获取内容。这适用于所有浏览器。Phonegap确实允许javascript在后台运行,但该过程会终止。您的UI可以是多平台的,但您必须使用特定于平台的扩展来辅助它。用一些javascript代码包装与扩展的链接,这些代码提供了一个通用的API,以便您的其余代码在所有平台上都是相同的。至少对我来说,这似乎比试图将node.js之类的东西塞进android服务中要好得多,以便在后台以一种与android系统兼容的方式运行javascript代码(即,不会一直死掉)是的,这是有道理的。但由于这是我的第一个android应用程序,我想通过使用我知道的技术(HTML CSS Javascript)来保持它的简单。但由于我已经用JS编写了所有调用,我宁愿继续这样做,然后重新开始。我将在下一个项目中使用您的方法。我将查看AlarmManager并检查运行的应用程序。:)我认为这对用户来说是相当烦人的,假设它甚至在用户使用另一个应用程序(尤其是玩游戏或观看视频)时起作用,我认为这是webkit引擎与此服务处于同一过程中的副作用。获得一个资源匮乏的前台应用程序,整个事情可能会被扼杀。Android可能会尽快重启服务,但可能不会重启Activity代码。
Intent serviceIntent = new Intent("com.myapp.LaunchActivity");
startService(serviceIntent);