使用Phonegap创建Android服务?(即使关闭,也可以运行phonegap app)

Jon*_*ono 72 mobile android android-intent android-service cordova

我一直在使用Phonegap开发Android应用程序,现在想要关闭应用程序,它仍然可以在应用程序中执行java/js代码.所以我理解我需要创建一个服务.如果我在phonegap上创建服务插件,我仍然可以执行javascript代码或只执行java吗?

有没有人做过这样的事情?我找到了这个讨论,但似乎没有用:http://groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6 这就是我现在所拥有的一切.

在我转向开发本土之前,如果我无法弄清楚它以为我会问以前是否有人这样做过.我似乎无法找到任何类似的手机插件插件.

编辑:我有一个应用程序执行Java代码作为服务.但是当它调用sendjavascript时它不起作用.那么有什么方法可以在后台运行javascript代码以及使用phonegap关闭应用程序时?

谢谢

Chr*_*ipp 56

不,不可能在后台运行Javascript代码(至少在我看来)作为服务.Android上的Phonegap使用名为Droidgap的特殊活动,该活动托管WebView.此浏览器控件执行JavaScript.这意味着JS执行只能在此活动内部处理,无论它是否可见.

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

您可以在源代码来自DroidGap活动的子活动中的JS代码中进行一些后台活动.例如,在您的活动中有一个后台线程,有一个JS回调函数,让线程调用这个回调函数.

如果你真的需要服务,你必须去当地.

更新:
JS代码只能在Droidgap活动中执行.活动可以有3种状态(基于活动生命周期):

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

我提供了一个示例,其中我实现了一个Phonegap插件.该插件允许活动将自己注册到SMS_RECEIVED.当活动超出范围(事件onbeforeunload)时,它会取消注册,因此只处理问题1.

如果您希望处理所有3个问题,则必须将传入的SMS意图转发给活动.未加载时,系统将自动加载并激活活动.但这不再是后台服务,只要收到短信,您的应用就会变得可见.

如果您不想这样做(如果您真的想要后台服务),则必须提供本机实现.

  • 谢谢.所以,如果我理解,我可以创建一个调用javascript回调的服务?例如,我可以在Java代码中获得一个服务,当它收到一条文本消息时,它调用一个javascript回调函数来执行一些JS代码?那将是完美的.我发现这个插件似乎创建了一个服务并调用了Js代码:https://github.com/awysocki/C2DM-PhoneGap (3认同)

Bru*_*uno 8

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

它正在使用一个很棒的插件,以便轻松地建立一个带有phonegap的后台服务.但你不能使用JS

我没有找到让JS在后台运行的方法.但是你可以使用插件将参数从Java传递到JS,反之亦然...这非常有用.你仍然需要用Java重写你的JS代码.除非你确实有一个特定的理由只想要运行JS?(但不应该......)

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