0

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

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

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

问题是在这一点上,我假设 获取和显示一个表格视图需要6 秒。但在实时情况下可能并非如此,因为时间可能会因数据而异

当用户单击一个图标时,它应该只显示加载屏幕,因为数据没有被填充并显示在 tableview 中。

它是两个任务之间的一种通知。一个当任务完成时,它应该通知另一个
我该如何解决?

4

3 回答 3

1

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

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

加载表数据时,触发事件:

Ti.App.fireEvent('tableDataLoaded');

我希望这能帮到您 :)

于 2012-12-13T09:47:25.630 回答
0

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

于 2012-12-10T07:14:14.183 回答
0

我已经实现了相同的。我的新窗口需要加载远程数据并填充表格视图。

所以我只是在打开的窗口中显示指标

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();
             }

});'

于 2012-12-14T11:14:58.993 回答