java - implement - Llamada sin marcar para ''ejecutar(Parámetros...)'' como miembro de tipo sin formato ''android.os.AsyncTask''
implement asynctask android (2)
Estoy siguiendo el tutorial de Google para Android en Udacity, pero en el código especificado, recibo la siguiente advertencia:
Llamada sin marcar para ''ejecutar (Parámetros ...)'' como miembro de tipo sin formato ''android.os.AsyncTask''
en este código:
DoSomethingTask myTask = new DoSomethingTask();
myTask.execute(); // Warning here
Hacer algo de tarea
public class DoSomethingTask extends AsyncTask {
protected Object doInBackground(Object[] params) {
...
}
}
¿Alguien puede explicar esta advertencia y cómo solucionarlo? Parece que debería funcionar de acuerdo a las instrucciones ...
La advertencia es causada por los parámetros de la tarea. Tratar de usar:
extends AsyncTask<Void, Void, Void>{
protected Object doInBackground() {
}
}
o usar:
extends AsyncTask<Object, Void, Void>{
protected Object doInBackground(Object[] params) {
}
}
myTask.execute(anyObject);
Explicación:
This documento explica el significado de los tres tipos para AsyncTask.
Parámetros, el tipo de los parámetros enviados a la tarea en la ejecución.
Progreso, el tipo de las unidades de progreso publicadas durante el cálculo de fondo.
- Resultado, el tipo de resultado del cálculo de fondo.
cambio
AsyncTask asyncTask = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
return "";
}
};
asyncTask.execute();
a
AsyncTask<Object, Void, String> asyncTask = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
return "";
}
};
asyncTask.execute();
La referencia de AsyncTask necesita lo mismo que la clase de AsyncTask, y el IDE no advertirá。