Я не могу понять это. Насколько я знаю, я следил за рекомендациями по расширению класса AsyncTask, и все другие связанные с ним вопросы в отношении SO не помогают в моем случае.Переопределить onPostExecute() в AsyncTask
вот мой класс, который расширяет AsyncTask:
package com.ck.nisttime;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* Created by ck on 12/15/15.
*/
public class FetchTime extends AsyncTask<Void,Void,String> {
private int port=13;
private String host="time-b.nist.gov";
private MainActivity mainAct;
public FetchTime(Context context){
this.mainAct=(MainActivity) context;
}
@Override
protected String doInBackground(Void... params) {
String time="";
try {
Socket socket=new Socket(host,port);
BufferedReader in= new BufferedReader(new InputStreamReader(socket.getInputStream()));
in.readLine();
time=in.readLine();
socket.close();
} catch(UnknownHostException uhe){
Log.e("ck", uhe.toString());
}
catch (IOException e) {
e.printStackTrace();
}
return time;
}
@Override
protected void onPostExecuted(String time){
mainAct.showTime(time);
}
}
Ошибка возникает при попытке переопределить onPostExecute, заявив, «Метод не отменяет метод из суперкласса». Я думаю, что я мог бы просто создать переменную класса для хранения строки и просто изменить ее на ...extends AsyncTask<Void,Void,Void>...
, но это не так, как должно быть сделано.
Извините за то, что потратил время на пробелы ... – Cam