thread implement hilos definicion asynctask async java android android-asynctask

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.

  1. Parámetros, el tipo de los parámetros enviados a la tarea en la ejecución.

  2. Progreso, el tipo de las unidades de progreso publicadas durante el cálculo de fondo.

  3. 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á。