Java 在AsyncTask中重写onPostExecute()

Java 在AsyncTask中重写onPostExecute(),java,android,android-asynctask,Java,Android,Android Asynctask,我似乎无法理解这一点。据我所知,我已经遵循了扩展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

我似乎无法理解这一点。据我所知,我已经遵循了扩展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);
    }
}
package com.ck.nisttime;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.util.Log;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.net.Socket;
导入java.net.UnknownHostException;
/**
*由ck于2015年12月15日创建。
*/
公共类FetchTime扩展异步任务{
专用int端口=13;
私有字符串host=“time-b.nist.gov”;
私人行为;
公共获取时间(上下文){
this.mainAct=(MainActivity)上下文;
}
@凌驾
受保护字符串doInBackground(无效…参数){
字符串时间=”;
试一试{
套接字=新的套接字(主机、端口);
BufferedReader in=新的BufferedReader(新的InputStreamReader(socket.getInputStream());
in.readLine();
时间=in.readLine();
socket.close();
}捕获(未知后异常uhe){
Log.e(“ck”,uhe.toString());
}
捕获(IOE异常){
e、 printStackTrace();
}
返回时间;
}
@凌驾
受保护的void onPostExecuted(字符串时间){
表演时间(时间);
}
}

当我试图重写onPostExecute时,会发生错误,声明“方法不会从其超类重写方法”。我想我可以创建一个类变量来存储字符串,然后将其更改为
…extends AsyncTask…
,但这不是应该怎么做的。

您键入了错误的名称,您有:

onPostExecuted
但它应该是:

onPostExecute

(结尾没有额外的“d”)

很抱歉浪费时间和空间,伙计们。。。