2012-12-10 64 views
0

我正在使用Titanium工作室來開發android應用程序。用戶點擊項目a 新窗口正在打開,它從站點獲取數據並填充tableview。所以這個窗口確實需要時間才能打開。 意味着雖然我獲取數據和表示加載屏幕等:當窗口打開時加載屏幕:Android

anotherWind.addEventListener('open', function (e) { 
     activityIndicator.show(); 

     setTimeout(function(){ 
    e.source.close(); 
    activityIndicator.hide(); 
    }, 6000); 
}); 

問題在這一點上我假設它需要6秒獲取和顯示的tableview。但在實時它可能不會像時間可根據數據

變化時用戶點擊它應該僅顯示時間數據不pulated和在的tableview顯示加載屏幕一個圖標的情況。

的一種兩個任務之間的通知。當任務完成時,應通知其他人
我該如何解決?

回答

1

您可以使用自定義事件偵聽器。 例子:

Ti.App.addEventListener('tableDataLoaded', function() { 
    activityIndicator.hide(); 
} 

當你的表中的數據被加載,你火事件:

Ti.App.fireEvent('tableDataLoaded'); 

我希望這將幫助你:)

0

看來多線程將是一個很好的解決方案。Android提供了一些不同的線程或進程之間的通信機制。

0

我已經實現了一樣。我的新窗口需要加載遠程數據並填充tableview。

,所以我只是在顯示窗口中打開

anotherWind.addEventListener('open', function (e) { activityIndicator.show(); });

指標,然後隱藏它裝載我的遠程數據時。 httpclient內部回調

'APIGetRequest(this.apiURL, function(e) { 
    var status = this.status; 
    if (status == 200) { 
       populatetableview(this.responseText); 
       activityIndicator.hide(); 
      } 

});'