我正在使用Titanium工作室开发Android应用程序。用户单击项目正在打开新窗口,从站点获取数据并填充表格视图。所以这个窗口确实需要时间打开。 意思是我正在获取数据并显示加载屏幕,如:
anotherWind.addEventListener('open', function (e) {
activityIndicator.show();
setTimeout(function(){
e.source.close();
activityIndicator.hide();
}, 6000);
});
问题是,此时我假设需要 6秒来获取并显示一个tableview。但实时可能并非如此,因为时间可能因数据而异[/ p>
当用户点击图标时,它应该仅显示加载屏幕,因为数据未被计算并显示在tableview中。
它是两个任务之间的一种通知。一,当任务完成时,它应该通知其他人 我怎么解决这个问题?
答案 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();
}
});'