在 Titanium 中创建线程

Create thread in Titanium

我需要在钛中创建线程以完成一些后台工作。我在 google 中四处搜索,发现了这个:

var queue = Ti.Async.createQueue();

var job = queue.dispatch(function() {

});

但现在我不知道如何在第一次执行后让线程保持活动状态(如果这是一个线程)以及如何为每次执行设置延迟?

我个人使用另一种方法在钛中创建"background processes"。

我创建了一个 javascript 文件,其中包含我需要在后台 运行 的元素,并对其应用 "setInterval"(使其无休止地 运行),像这样:

//FILENAME: bgTask.js

function myFunc() {
    //Code here
}

setInterval(myFunc, <time in milliseconds>);

现在,我创建了没有视图的控制器来获取它 运行ning。例如,如果我需要它在整个应用程序的后台 运行,我会在 "index.js" 中 运行 一个 "Alloy.createController",但永远不会获得视图或显示它。这将在后台创建并执行控制器。

在"index.js"我用

Alloy.createController("bgTask");

创建后台进程。


如果您只想让后台进程 运行 一次(或一定次数),您可以更改后台进程文件(bgTask.js 在这种情况下)以遵循您的需求,并在每次需要 运行 任务时创建控制器。


要从后台进程中获取结果,您可以使用全局变量或您认为合适的任何其他方法。要使用全局变量,请使用

Ti.App.<varname> = <something>

这样可以为整个应用程序保存值。 适用于 iOS、Android 和 Windows Phone。

抱歉回答晚了,希望对您有所帮助。