如何删除ConnectionRequest中的默认错误处理

时间:2018-03-15 10:14:24

标签: codenameone

我想使用Rest-class来做一些http调用,因为它看起来非常方便。但是,我似乎无法与自定义错误处理一起使用它。无论我做什么,我总是会遇到来自ConnectionRequest默认实现的内置弹出窗口。

由于Rest方法的接口包含

public interface Callback<T> extends SuccessCallback<T>, FailureCallback<T> {
}

// RequestBuilder.java
public void getAsStringAsync(final Callback<Response<String>> callback) {...}

它让我有点奇怪,我无法真正利用FailureCallback,因为它永远不会被调用,因为ConnectionRequest中的默认实现中有默认弹出窗口。

我是否误解了如何在这方面使用FailureCallback?

1 个答案:

答案 0 :(得分:1)

无论是否应该调用失败回调,这个方法的某些变体可能会对回调代码产生问题,所以如果你有一个不起作用的特定方法引用,我可以看一下。

关于一般错误处理。有趣的是,我们刚刚更新了在新项目向导中创建的默认项目,以包含此类代码,以便人们轻松找到它。见https://www.codenameone.com/blog/new-default-code.html

覆盖默认网络处理错误的代码如下所示:

addNetworkErrorListener(err -> { 
    // prevent the event from propagating
    err.consume();
    if(err.getError() != null) {
        Log.e(err.getError());
    }
    Log.sendLogAsync();
});

请注意,代码需要CN类静态导入才能编译:

import static com.codename1.ui.CN.*;