报错地方:
java.io.InterruptedIOException: thread interrupted
at okio.Timeout.throwIfReached(Timeout.java:145)
at okio.Okio$1.write(Okio.java:76)
我在搜索的时候出现这个问题,一开始以为是rxjava后面请求未解绑的问题,但是实际上,在zip操作的时候已经做了判断
if (null != zipDisposable && !zipDisposable.isDisposed()) {
zipDisposable.dispose();
}
我想这个问题应该是之前那个请求还没结束而我又开始请求另一个造成的,于是我开始延迟搜索策略试试,
private final int RC_SEARCH = 1;
private final int INTERVAL = 300; //输入时间间隔为300毫秒
private EditText mEtHandler;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == RC_SEARCH) {
handlerSearch();
}
}
};
mEtHandler.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (mHandler.hasMessages(RC_SEARCH)) {
mHandler.removeMessages(RC_SEARCH);
}
mHandler.sendEmptyMessageDelayed(RC_SEARCH, INTERVAL);
}
});
这样在弱网环境下还是可能出现,稳一点写500延迟。就能解决 java.io.InterruptedIOException: thread interrupted