我需要在鈦中創建一個線程,以便在背景中進行一些工作。第一次執行以及如何因我設定的延遲每個之後在Titanium中創建線程
var queue = Ti.Async.createQueue();
var job = queue.dispatch(function() {
});
但現在我不現在如何保持線程活着(如果這是一個線程):我在谷歌搜索了一圈,發現這執行?
我需要在鈦中創建一個線程,以便在背景中進行一些工作。第一次執行以及如何因我設定的延遲每個之後在Titanium中創建線程
var queue = Ti.Async.createQueue();
var job = queue.dispatch(function() {
});
但現在我不現在如何保持線程活着(如果這是一個線程):我在谷歌搜索了一圈,發現這執行?
我個人使用另一種方法在鈦中創建「背景過程」。
我創建一個包含我需要在後臺運行,並應用「的setInterval」它(使它不休運行)元素的JavaScript文件,像這樣:
//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。
對不起,遲到的答案,希望這有助於。
我已經想出瞭如何應付它,但你的答案是正確的,所以我接受它。謝謝你的回答 –
很抱歉,如果它來得太晚。一旦我注意到,我已經回答了。 – Crystallize
不用擔心 –