3 回答
TA贡献1871条经验 获得超8个赞
不,不可能在后台运行Javascript代码(至少在我看来)作为服务。Android上的Phonegap使用名为Droidgap的特殊活动,该活动承载WebView。该浏览器控件执行JavaScript。这意味着JS执行只能在此活动内部进行处理,无论它是否可见。
您从Google网上论坛链接的代码尝试将用Java开发的服务绑定到DroidGap活动,因此该服务不是用JS编写的。
在DroidGap活动的子活动中,您的JS代码中可以包含一些后台活动。例如,在您的活动中有一个后台线程,有一个JS回调函数,然后让该线程调用该回调函数。
如果您确实需要服务,则必须本地化。
更新:
JS代码只能与Droidgap活动一起执行。一个活动可以具有3个状态(基于Activites的生命周期):
可见
隐形但仍然加载
未加载
我提供了一个示例,其中实现了Phonegap插件。该插件允许活动将自身注册到SMS_RECEIVED。当活动超出范围(事件onbeforeunload)时,它将注销,因此仅处理问题1。
当您要处理所有3个问题时,必须将传入的SMS意图转发给该活动。未加载时,系统将自动加载并激活活动。但这不再是后台服务,每当收到SMS时,您的应用程序就会变得可见。
如果您不希望这样做(如果您确实需要后台服务),则必须提供本机实现。
TA贡献1829条经验 获得超13个赞
有这篇文章就如何建立在Android上的PhoneGap服务这给你的问题,一些有用的信息。
它使用了一个很棒的插件,以便通过phonegap轻松构建后台服务。但是你不能使用JS
我没有找到使JS在后台运行的方法。但是您可以使用插件将参数从Java传递到JS,反之亦然...这非常有用。不过,您仍然需要用Java重写JS代码。除非您有特定原因只希望运行JS?(但是不应该...)
希望对某些访问此页面的人有用。
- 3 回答
- 0 关注
- 301 浏览
添加回答
举报