您能否指导我在 Android 中使用 Worklight 时如何运行后台进程/服务?我查看了很多地方,但没有发现任何有用的信息。
3 回答
我假设您询问的是当应用程序在后台时运行后台进程。问题是当应用程序在后台时,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
从技术上讲,听起来您描述的流程需要从 javascript 代码运行插件,并从插件内启动服务。这里的异步问题可能有点棘手——因为“从”插件到 js 的返回是异步的,而且本机代码中的线程本身(服务)也是异步的。那么同步运行您的本机代码还不够吗?(这将是与本机同步的“相对”,但与 js 是异步的“相对”)
安卓服务 - http://developer.android.com/guide/components/services.html
如果您谈论的是应用程序的 JavaScript 部分,您可以使用 setTimeout(function(){...}, 0); 分离线程。这是 JavaScript 必须提供的最接近后台线程的东西。当然,您可以研究 web worker,但这会使事情变得更复杂一些。