我似乎无法弄清楚这一点。据我所知,我已经遵循了扩展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>...
,但这不是应该如何完成的。
答案 0 :(得分:1)
您错误输入了它的名称,您有:
onPostExecuted
但它应该是:
onPostExecute
(最后没有额外的'd'。