¿Cómo funciona AsyncTask <String, Void, Void>?
¿Podría alguien decirme qué está saliendo mal aquí?
public class BackgroungTask extends AsyncTask<String, Void, Void> { public Void doInBackground(String... params) { //tasks return; //error occurs here! } public void onPostExecute(Void result) { //codes } }
La clase anterior no depende de valores de retorno. Así que onPostExceute () simplemente ejecuta códigos escritos allí.
- Oculte automáticamente la disposición del reproductor multimedia en android
- Android no está recolectando el archivo derecha dimens.xml de la carpeta de valores
- Establecer la altura de un AlertDialog con una vista personalizada de cero tamaño intrísico
- Listview en el lado de rleft y tabhost en el lado derecho con la proporción de 20:80 compartir pantalla
- Cómo eliminar la ventana de mensaje Problemas de procesamiento en Intellij IDEA 13 vista previa del diseño
¡Gracias por adelantado!
- ¿Qué hace la clase LayoutInflater? (En Android)
- Cómo utilizar el adaptador mientras llena los diseños
- imprimir una jerarquía de vistas en un dispositivo
- ¿Cómo puedo obtener botones de acción con diseños personalizados para que se llamen como botones de acción estándar en Android 3.0+
- LayoutInflater y onFinishInflate ()
- Traducir programaticamente Vista Pre-Honeycomb
- Altura de diseño de Android mínima de match_parent, pero wrap_content si el contenido es mayor que parent
- ¿Puedo agrupar los controles?
Sólo devuelve null.
public class BackgroungTask extends AsyncTask<String, Void, Void> { public Void doInBackground(String... params) { //tasks return null; } public void onPostExecute(Void result) { //codes } }
Creo que tienes que usar "return null;" En lugar de simplemente "return"; como Void
es una clase alrededor del valor "void" usual.
En doInBackGround
devuelve null, ya que Void
es un objeto (no = void) ..
public class BackgroungTask extends AsyncTask<String, Void, Void> { public Void doInBackground(String... params) { //tasks return null; //error occurs here! } public void onPostExecute(Void result) { //codes } }
AsyncTask funciona de esta manera
OnPreExecute -> doInBackGround -> onPostExecute
Despreciando progressUpdates etc, tan pronto doInBackGround está completo, el control pasa a onPostExecute. Un simple retorno interrumpe este flujo causando el error. Para resolver esto, reemplazar con return null Ya que es un void. Los parámetros de declaración de retorno se pasan a onPostExecute como parámetro, donde se puede usar para ver si ha sido exitoso.
doInBackGround
devuelve valor nulo
public class BackgroungTask extends AsyncTask<String, Void, Void> { .... .... }
Compruebe este documento de Android dev para la tarea asíncrona en andorid
- La mejor manera de ocultar el teclado en Android
- Barra de navegación translúcida Lollipop (fitsSystemWindows = "true")