0

com.ning.http.client.AsyncHttpClient次のようにWebソケット接続を開くために使用しています。

AsyncHttpClient client = new AsyncHttpClient();
try {
    client.prepareGet(url)
         .execute(new WebSocketUpgradeHandler.Builder()
                 .addWebSocketListener(new WebSocketListener() {
                     @Override
                     public void onOpen(WebSocket webSocket) {
                         Log.d(TAG, "opened");
                     }

                     @Override
                     public void onClose(WebSocket webSocket) {
                         Log.d(TAG, "closed");
                     }

                     @Override
                     public void onError(Throwable throwable) {
                         Log.d(TAG, "error");
                     }
                 }).build());
} catch (IOException e) {
    e.printStackTrace();
}

これは、github ドキュメントhttps://github.com/AsyncHttpClient/async-http-clientで概説されています。

ただしonError、例外を除いて毎回呼び出されていることがandroid.os.NetworkOnMainThreadExceptionわかります。

どうしてこれなの?クライアントが動作できる別のスレッドまたは AsyncTask のインスタンスが本当に必要ですか?

4

1 に答える 1