2013-01-20 21 views

回答

2

我假设你问的是当应用程序在后台运行后台进程。问题是PhoneGap中的JavaScript在应用程序处于后台时不能运行。为了提供后台进程功能,您需要创建一个插件来管理后台进程。

http://docs.phonegap.com/en/2.2.0/guide_plugin-development_index.md.html

曾经有来自工作灯的一些文件有关创建PhoneGap的插件,工作灯应用中使用,但我似乎无法找到它。

已经有一个现有的插件来帮助Android的管理后台进程

https://github.com/phonegap/phonegap-plugins/tree/master/Android/BackgroundService

+0

感谢您的链接。我实际上正在做其他事情,并且为电话插件添加了插件,并且能够在worklight应用中实现它。它是Phonegap的通知插件 –

+0

有没有办法从本地进程调用工作灯适配器?或者请求只能通过JavaScript? –

+0

@HoucemBerrayana您可以直接向Worklight服务器发出HTTP请求以调用适配器。 Worklight JS API提供了一个围绕该AJAX调用的包装。一旦知道了URL和有效负载结构,就可以让任何客户端(本地或JS)发出相同的请求。 –

0

如果你正在谈论应用程序的JavaScript部分,你可以使用setTimeout(function(){...},0);来分离一个线程。这是最接近后台线程JavaScript的必须提供。当然,你可以看看网络工作者,但这会让事情变得更加复杂。

+0

,这是个好主意。但我宁愿寻找我们在Android中称为服务的东西。即使应用程序未处于活动状态,仍会继续在后台运行的进程 –

1

从技术上讲,这听起来像你描述的流程需要从JavaScript代码运行的插件,并开始从服务在插件内。 这里的异步问题可能有点棘手 - 因为从插件到js的“返回”是异步的,而且本地代码中的线程本身(服务)也是异步的。 那么,它不足以同步运行您的本机代码? (这将是同步的“相对”原生,但异步“相对”的JS)

的Android服务 - http://developer.android.com/guide/components/services.html