OK http cancel()によるCrash NetworkOnMainThreadExcepti

714 ワード

okhttpの2.6.0バージョン
httpリンクインタフェースを使用するとcancel()を実行するとcrashの適用が開始されます
一時的な解決策はcancel()をbackgroundスレッドに置いて実行することです
okHttpClient.getDispatcher().getExecutorService().execute(new CancelRunnable
        (requestTag, okHttpClient));
public class CancelRunnable implements Runnable {
    Object requestTag;
    OkHttpClient okHttpClient;

    public CancelRunnable(Object requestTag, OkHttpClient okHttpClient) {
        this.requestTag = requestTag;
        this.okHttpClient = okHttpClient;
    }

    @Override
    public void run() {
        if (okHttpClient != null && requestTag != null) {
            okHttpClient.cancel(requestTag);
        }
    }
}