AsyncTask缺少返回语句

时间:2015-07-17 19:27:21

标签: android android-asynctask

Android Studio坚持认为我在doInBackground中缺少返回值,即使它似乎被声明为Void。我忽略了什么吗?

AsyncTask<Boolean, Void, Void> initiateConnection = new AsyncTask<WebSocketClient, Void, Void>() {
        @Override
        protected Void doInBackground(WebSocketClient ... clients) {
            clients[0].connect();
        }

        @Override
        protected void onPostExecute(Void result) {
            Log.i(st, "Socket connected.");
        }
    };
    initiateConnection.execute();
}

2 个答案:

答案 0 :(得分:8)

Void(大写V)不是void(小写v)。使用void,您可以“脱离方法的底部”。使用Void,您需要显式返回一些内容,通常为null

答案 1 :(得分:2)

您需要返回null

protected Void doInBackground(WebSocketClient ... clients) {
    clients[0].connect();

    return null;
}