2017-01-16 3 views
0

Я пытаюсь следовать example в официальной странице Android Development создать класс AsyncTask, но я получаю эту ошибку:AsyncTask - Модификатор здесь не допускается

Ошибка: (13, 9) Ошибка: модификатор частный здесь не допускается

здесь вы можете найти свой код:

package aloha.com.ar.dummy; 

import android.os.AsyncTask; 
import java.io.DataOutputStream; 
import java.io.DataInputStream; 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.Socket; 


private class Connection extends AsyncTask < Void, Void, Void > { 

protected String doInBackground() { 
    try { 
    BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); 

    Socket clientSocket = new Socket("localhost", 10023); 
    DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); 
    BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
    outToServer.writeBytes("Hello from Java!"); 
    // Answer = inFromServer.readLine(); 
    // System.out.println(modifiedSentence); 
    clientSocket.close(); 
    return "Connected"; 

    } catch (Exception e) { 
    return e.toString(); 
    } 
} 

protected void onProgressUpdate() {} 

protected void onPostExecute() {} 
} 
+0

он должен быть 'общественный класс Connection' –

+0

Переход к общественности: Ошибка: (13, 8) Ошибка: Соединение не является абстрактным и не отменяет абстрактный метод doInBackground (Пустота ...) в AsyncTask – Bob

+0

Да, у вас есть неправильная реализация таких методов, как 'doInBackground' и другие, используйте' ctrl + space', чтобы переопределить соответствующие методы и прочитать полные документы. –

ответ

-1

вы не можете назвать частный класс в другом классе, он должен быть публичным или частным пакетом (без модификатора)

+0

Ошибка изменения: ошибка: (13, 8): соединение не является abstr действовать и не переопределять абстрактный метод doInBackground (Void ...) в AsyncTask – Bob

0

Вы должны расширить AsyncTask с правильными типами общего типа, AsyncTask принимает 3 из них, параметры, которые вы передаете doInBackground, param, который вы передаете publishProgress и param для результата, вот почему вы получаете класс ошибок, должны быть делятся на абстрактные.

+0

Спасибо, но если я объявлю его абстрактным, то я не могу создать экземпляр правильно? Как я могу вызвать выполнение? – Bob

+0

Если вы хотите использовать его, вы не должны делать его абстрактным. Сделайте свой метод таким, как защищенный Void doInBackgroud (Void ... params), и это должно быть хорошо – Tuby

Смежные вопросы