无法覆盖 AsyncTask 中的 onPostExecute() 方法 Class
Can't Override onPostExecute() method in AsyncTask Class
我知道有几个问题与这个问题非常相似,但到目前为止它们都没有帮助我。我仍然无法覆盖此 AsyncTasks。
你能帮帮我吗?
我已经确保 doInBackground() 开发了 onPostExecute() 需要的某些类型(第一个示例中的布尔值和第二个示例中的 JSON)。
除了我将 AsyncTask 扩展为原始类型之外,您是否看到任何其他内容(不确定在此处输入什么)
这是 eclipse 告诉我每种方法的错误:
The method onPostExecute(Boolean) of type Register.NetCheck must override or implement a supertype method
对于 类 日食告诉我:
The type Register.NetCheck must implement the inherited abstract method AsyncTask.doInBackground(Object...)
AsyncTask is a raw type. References to generic type AsyncTask should be
parameterized
示例 1:
private class NetCheck extends AsyncTask {
@Override
protected void onPreExecute(){
super.onPreExecute();
do.something();
}
@Override
protected Boolean doInBackground (String... args){
if (do.something.worked){
return true; }
else { return false}
}
@Override
protected void onPostExecute(Boolean th){
evalute.input.boolValue();
}
}
示例 2:
private class ProcessRegister extends AsyncTask {
@Override
protected void onPreExecute() {
super.onPreExecute();
show.some.dialog();
}
@Override
protected JSONObject doInBackground(String... args) {
JSONObject json = generate.some.json();
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
evaluate.something();
}
}
您的异步任务不需要 return 值,因此它无法识别
protected void onPostExecute(Boolean th)
试试这个:
private class NetCheck extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute(){
super.onPreExecute();
do.something();
}
@Override
protected Boolean doInBackground (String... args){
if (do.something.worked){
return true; }
else { return false}
}
@Override
protected void onPostExecute(Boolean th){
evalute.input.boolValue();
}
}
将第二个示例的 Boolean 替换为 JSONObject。尝试总是使用 IDE 来自动为你执行方法,将避免这样的问题。
您应该使用类型扩展 AsyncTask。请参阅下面的示例。
public class MyTask extends AsyncTask<Void, String, Integer> {
@Override
protected Integer doInBackground(Void... params) {
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
@Override
protected void onCancelled(Integer integer) {
super.onCancelled(integer);
}
@Override
protected void onCancelled() {
super.onCancelled();
}
}
用适当的类型替换 Void、String、Integer。更多信息是 here。
关于 Eclipse。删除并安装 Android Studio.
我知道有几个问题与这个问题非常相似,但到目前为止它们都没有帮助我。我仍然无法覆盖此 AsyncTasks。 你能帮帮我吗?
我已经确保 doInBackground() 开发了 onPostExecute() 需要的某些类型(第一个示例中的布尔值和第二个示例中的 JSON)。
除了我将 AsyncTask 扩展为原始类型之外,您是否看到任何其他内容(不确定在此处输入什么)
这是 eclipse 告诉我每种方法的错误:
The method onPostExecute(Boolean) of type Register.NetCheck must override or implement a supertype method
对于 类 日食告诉我:
The type Register.NetCheck must implement the inherited abstract method AsyncTask.doInBackground(Object...)
AsyncTask is a raw type. References to generic type AsyncTask should be parameterized
示例 1:
private class NetCheck extends AsyncTask {
@Override
protected void onPreExecute(){
super.onPreExecute();
do.something();
}
@Override
protected Boolean doInBackground (String... args){
if (do.something.worked){
return true; }
else { return false}
}
@Override
protected void onPostExecute(Boolean th){
evalute.input.boolValue();
}
}
示例 2:
private class ProcessRegister extends AsyncTask {
@Override
protected void onPreExecute() {
super.onPreExecute();
show.some.dialog();
}
@Override
protected JSONObject doInBackground(String... args) {
JSONObject json = generate.some.json();
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
evaluate.something();
}
}
您的异步任务不需要 return 值,因此它无法识别
protected void onPostExecute(Boolean th)
试试这个:
private class NetCheck extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute(){
super.onPreExecute();
do.something();
}
@Override
protected Boolean doInBackground (String... args){
if (do.something.worked){
return true; }
else { return false}
}
@Override
protected void onPostExecute(Boolean th){
evalute.input.boolValue();
}
}
将第二个示例的 Boolean 替换为 JSONObject。尝试总是使用 IDE 来自动为你执行方法,将避免这样的问题。
您应该使用类型扩展 AsyncTask。请参阅下面的示例。
public class MyTask extends AsyncTask<Void, String, Integer> {
@Override
protected Integer doInBackground(Void... params) {
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
@Override
protected void onCancelled(Integer integer) {
super.onCancelled(integer);
}
@Override
protected void onCancelled() {
super.onCancelled();
}
}
用适当的类型替换 Void、String、Integer。更多信息是 here。 关于 Eclipse。删除并安装 Android Studio.