IBM Worklight 6.0 - 忙碌指示器并不总是在Android上关闭

时间:2013-06-25 17:56:05

标签: android ibm-mobilefirst

我正在使用WL.BusyIndi​​cator在Worklight 6.0中调用适配器:

this.busyIndicator.show();

WL.Client.invokeProcedure(invocationData, {
    onSuccess : function(response) {

        this.busyIndicator.hide();

        // do good stuff

}.bind(this),
    onFailure : function(err) {

        this.busyIndicator.hide();
        WL.SimpleDialog.show("Adapter Error", JSON.stringify(err), [{text: "OK"}]);

    }.bind(this)
});

这通常有效,但在Android上,当适配器调用失败(工作灯服务器停止)时,我有时会看到“适配器错误”对话框,当我解除它时,busyindicator仍然存在。此时我的应用程序已经死了,因为我无法使用busyindicator运行。 (后退按钮不会清除它)

除了关于适配器调用失败的错误消息之外,logcat中没有任何内容。

我在Android 4.1.2和4.2.2以及4.1.2手机上的模拟器中看到了这一点。我无法在Android 2.2模拟器中重现它,但运行得慢得多,它可能只是一个我无法在那里击中的时间窗口。我还没有在iOS或Chrome上看到这个问题。

有没有人见过这个?

3 个答案:

答案 0 :(得分:1)

我们在5.0x版本中遇到过类似的问题。我们最终创建了一个Busy Indicator管理器,并实现了最终关闭指标的超时。然后我们通过这位经理指示所有电话。

答案 1 :(得分:0)

我在这里缺少一些东西......

为什么以this.busyIndicator.show()的形式使用BusyIndi​​cator?
你初始化了自己的busyIndi​​cator吗? Try creating one of your own然后以例如mybusy.show()mybusy.hide()的形式使用它。

答案 2 :(得分:0)

我在6.0和6.1中看到了这个问题。我在wlCommonInit中初始化了。由于我们使用jquery,我决定切换到jquery加载器,似乎工作正如我预期的busyIndi​​cator可以工作。唯一的问题是你确实失去了原生装载,但这是我必须通过的。

$.mobile.loading( "show", {text: "foo",textVisible: true,theme: "z",html: ""});
$.mobile.loading( "hide");