【问题标题】:Create thread in Titanium在 Titanium 中创建线程
【发布时间】:2016-04-29 09:00:32
【问题描述】:

我需要在钛中创建一个线程,以便在后台进行一些工作。我在谷歌搜索了一下,发现了这个:

var queue = Ti.Async.createQueue();

var job = queue.dispatch(function() {

});

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

【问题讨论】:

    标签: android ios iphone titanium titanium-mobile


    【解决方案1】:

    我个人使用另一种方法在钛中创建“背景进程”。

    我创建了一个 javascript 文件,其中包含我需要在后台运行的元素,并对其应用“setInterval”(使其无休止地运行),如下所示:

    //FILENAME: bgTask.js
    
    function myFunc() {
        //Code here
    }
    
    setInterval(myFunc, <time in milliseconds>);
    

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

    在“index.js”中我使用

    Alloy.createController("bgTask");
    

    创建后台进程。


    如果您想让后台进程只运行一次(或一定次数),您可以更改后台进程文件(在本例中为 bgTask.js)以满足您的需要,并在每个您需要运行任务的时间。


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

    Ti.App.<varname> = <something>
    

    这样,整个应用程序的值就会被保存下来。 适用于 iOS、Android 和 Windows Phone。

    抱歉回复晚了,希望对你有帮助。

    【讨论】:

    • 我已经想出了如何应付,但你的回答是正确的,所以我接受它。感谢您的回答
    • 抱歉,来得太晚了。我一注意到就回复了。
    • 别担心
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2011-02-23
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多