android排球OnTimeout mehod

时间:2016-11-28 03:59:02

标签: android android-volley

如何处理凌空中的超时事件,例如,为用户提供提示?我在谷歌搜索后找不到任何有用的东西。

创建请求时,我应该在Response.ErrorListener()中编写逻辑吗?

2 个答案:

答案 0 :(得分:1)

在Volley中定义了一个名为TimeoutError的异常,你可以利用它。在下面添加一个例子

Response.ErrorListener errorListener = new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError volleyError) {
        if (volleyError.networkResponse == null) {
            if (volleyError.getClass().equals(TimeoutError.class)) {
                // Show timeout error message
                Toast.makeText(getContext(),
                        "Oops. Timeout error!",
                        Toast.LENGTH_LONG).show();
            }
        }
    }
});

另请参阅此link

答案 1 :(得分:1)

我建议使用if (volleyError.getClass().equals(TimeoutError.class))而不是if (volleyError instanceof TimeoutError)。因为volleyError.getClass()可以抛出 NullPointerException 。显然它也会减少你的代码行。

Response.ErrorListener errorListener = new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError volleyError) {
        if (volleyError instanceof TimeoutError) {
                Toast.makeText(getContext(),"Oops. Timeout error!", Toast.LENGTH_LONG).show();
            }
    }
});