用Phonegap创build一个Android服务? (即使在closures的情况下也可以运行phonegap应用

我一直在使用Phonegap开发一个Android应用程序,现在想在应用程序closures的时候这样做,它仍然可以在应用程序中执行java / js代码。 所以我明白我需要创build一个服务。 如果我在phonegap上创build一个服务插件,我仍然可以执行JavaScript代码或只有Java?

有没有人做这样的事情? 我发现这个讨论,但似乎没有工作: http : //groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6这就是我现在所拥有的。

如果我不能想象出来,我会转而开发原生的,我会问,如果有人曾经这样做过。 我似乎无法find任何类似的phonegap插件。

编辑:我有一个执行Java代码作为服务的应用程序。 但是,当它调用sendjavascript不起作用。 那么有没有办法让JavaScript代码在后台运行,当一个应用程序closures与phonegap?

谢谢

不,在后台运行Javascript代码(至less在我看来)是不可能的。 Android上的Phonegap使用一个称为Droidgap的特殊活动,它托pipe一个WebView。 这个浏览器控件执行JavaScript。 这意味着JS执行只能在这个活动中处理,不pipe它是否可见。

您从Google网上论坛链接的代码尝试将Java开发的服务绑定到DroidGap活动,所以服务不是用JS编写的。

您可以在从DroidGap活动派生的子活动中的JS代码中拥有一些后台活动。 例如在你的activity中有一个后台线程,有一个JScallback函数,并让线程调用这个callback函数。

如果你真的需要一个服务,你必须去当地。

更新:
JS代码只能用Droidgap活动执行。 一个活动可以有3个状态(基于活动的生命周期 ):

  1. 可见
  2. 看不见,但仍然加载
  3. 没有加载

我提供了一个示例 ,其中实现了一个Phonegap插件。 该插件允许该活动注册到SMS_RECEIVED。 当活动超出范围(事件onbeforeunload),它注销,所以只处理问题1。

当你想要处理所有3个问题时,你必须将传入的SMS意图转发给该活动。 未加载时,系统将自动加载并激活该活动。 但是,这不是一个后台服务,只要收到短信,你的应用就会变得可见。

如果你不想要这个(如果你真的想要一个后台服务),你必须提供一个本地实现。

有关于如何使用Phonegap在Android上创build服务的文章 ,它提供了有关您的问题的一些很好的信息。

它使用一个伟大的插件,以便轻松地build立一个phonegap背景服务。 但是你不能使用JS

我没有find一种方法让JS在后台运行。 但是你可以通过插件将参数从Java传递给JS,反之亦然…这非常有用。 你仍然需要用Java重写你的JS代码。 除非你有一个特定的理由只希望JS运行? (但不应该有…)

希望对访问此页面的某些人有用。

是的,这是非常简单的…只需安装插件backgroundJS:

https://build.phonegap.com/plugins/430

它允许你在后台运行javascript,并结合本地通知插件,你甚至可以随时发送通知给用户,只要记住这样做会导致电池耗尽更快,也可以认为这可能用iOS策略创build问题。 祝你好运!!!

你可以尝试添加插件 cordova-plugin-background-mode

但正如作者所说:
无限的后台任务在大多数移动操作系统上都没有官方的支持,因此不符合公共商店的供应商。 一个成功的submssion不是保证。 使用插件风险自负!