在窗口打开时加载屏幕:Android

时间:2012-12-10 07:10:26

标签: android titanium

我正在使用Titanium工作室开发Android应用程序。用户单击项目正在打开新窗口,从站点获取数据并填充表格视图。所以这个窗口确实需要时间打开。 意思是我正在获取数据并显示加载屏幕,如:

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

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

问题是,此时我假设需要 6秒来获取并显示一个tableview。但实时可能并非如此,因为时间可能因数据而异[/ p>

当用户点击图标时,它应该仅显示加载屏幕,因为数据未被计算并显​​示在tableview中。

它是两个任务之间的一种通知。一,当任务完成时,它应该通知其他人 我怎么解决这个问题?

3 个答案:

答案 0 :(得分:1)

您可以使用自定义事件侦听器。 例如:

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

加载表数据后,您将触发事件:

Ti.App.fireEvent('tableDataLoaded');

我希望这会对你有所帮助:)。

答案 1 :(得分:0)

似乎多线程将是一个很好的解决方案.Android提供了不同线程或进程之间的一些通信机制。

答案 2 :(得分: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();
             }

});'