为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Smart猫小萌 2019-10-06 15:48:13
我一直在使用Phonegap开发Android应用程序,现在想要创建它,因此在关闭应用程序时,它仍然可以在应用程序中执行java / js代码。所以我知道我需要创建一个服务。如果我在phonegap上创建服务插件,是否仍可以执行javascript代码或仅执行Java?有没有人做这样的事情?我找到了这个讨论,但似乎没有用:http : //groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6 所以这就是我现在所拥有的。在转向本地开发之前,如果我无法弄清楚,我会问是否有人做过此事。我似乎找不到任何执行类似操作的phonegap插件。编辑:我有一个执行Java代码作为服务的应用程序。但是,当它调用sendjavascript时,它将不起作用。因此,当使用phonegap关闭应用程序时,是否有办法在后台运行javascript代码?谢谢
查看完整描述

3 回答

?
ITMISS

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时,您的应用程序就会变得可见。


如果您不希望这样做(如果您确实需要后台服务),则必须提供本机实现。


查看完整回答
反对 回复 2019-10-06
?
烙印99

TA贡献1829条经验 获得超13个赞

有这篇文章就如何建立在Android上的PhoneGap服务这给你的问题,一些有用的信息。


它使用了一个很棒的插件,以便通过phonegap轻松构建后台服务。但是你不能使用JS


我没有找到使JS在后台运行的方法。但是您可以使用插件将参数从Java传递到JS,反之亦然...这非常有用。不过,您仍然需要用Java重写JS代码。除非您有特定原因只希望运行JS?(但是不应该...)


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


查看完整回答
反对 回复 2019-10-06
  • 3 回答
  • 0 关注
  • 301 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信