如何处理凌空中的超时事件,例如,为用户提供提示?我在谷歌搜索后找不到任何有用的东西。
创建请求时,我应该在Response.ErrorListener()
中编写逻辑吗?
答案 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();
}
}
});