如何使用 Worklight 运行后台进程?

Posted

技术标签:

【中文标题】如何使用 Worklight 运行后台进程?【英文标题】:How to run a background process using Worklight? 【发布时间】:2013-01-20 08:57:43 【问题描述】:

您能否指导我在 android 中使用 Worklight 时如何运行后台进程/服务?我查看了很多地方,但没有发现任何有用的信息。

【问题讨论】:

【参考方案1】:

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

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

曾经有一些来自 Worklight 的关于创建用于 Worklight 应用程序的 PhoneGap 插件的文档,但我似乎找不到它。

已经有一个插件可以帮助管理 Android 中的后台进程

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

【讨论】:

感谢您的链接。我实际上正在做其他事情,并且遇到了 phonegap 的插件,并且能够在 worklight 应用程序中实现它。这是 phonegap 的通知插件 有没有办法从本机进程调用工作灯适配器?或者请求只能通过 javascript 来? @HoucemBerraana 您可以直接向 Worklight 服务器发出 HTTP 请求以调用适配器。 Worklight JS API 提供了一个围绕进行 AJAX 调用的包装器。一旦您知道 URL 和有效负载结构,您就可以让任何客户端(本机或 JS)发出相同的请求。【参考方案2】:

从技术上讲,听起来您描述的流程需要从 javascript 代码运行插件,并从插件内启动服务。 这里的异步问题可能有点棘手——因为“从”插件到 js 的返回是异步的,而且本机代码中的线程本身(服务)也是异步的。 那么同步运行您的本机代码还不够吗? (这将是同步“相对”于本机但异步“相对”于 js)

安卓服务 - http://developer.android.com/guide/components/services.html

【讨论】:

【参考方案3】:

如果您谈论的是应用程序的 JavaScript 部分,您可以使用 setTimeout(function()..., 0); 分离线程。这是 JavaScript 必须提供的最接近后台线程的东西。当然,您可以研究 Web Worker,但这会使事情变得更复杂。

【讨论】:

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

以上是关于如何使用 Worklight 运行后台进程?的主要内容,如果未能解决你的问题,请参考以下文章

linux中如何把一个进程放在后台运行

如何检查正在运行的进程是不是是后台进程? [关闭]

怎么进QT后台

如何在ios中每n秒连续在后台线程中运行一个进程

如何杀死在后台运行的 IEDriver exe 进程(Selenium webdriver)?

如何把linux后台任务调到前台