Usando AsyncTask de esta manera: "new AsyncTask () {" me está dando errores
Estoy siguiendo un tutorial de Android en GCM que utiliza una función llamada "doInBackground" y tienen esta función definida como esta:
private void registerInBackground() { new AsyncTask() { @Override protected String doInBackground(Void... params) { //do stuff } @Override protected void onPostExecute(String msg) { //do stuff } }.execute(null, null, null); }
Pero cuando coppy y pegar su propio código en eclipse, se queja y dice que no he implementado doInBackground. Esto es porque espera que doInBackground tenga un parámetro de entrada de "Object" y no reconozca el que está definido porque su parámetro de entrada es un void. Ahora, si estaba declarando una tarea asíncrona como una clase, pondría <Void, Void, String>
delante de ella, y eso diría al compilador que quiero que mi doInBackground tenga VOID como entrada. Pero cuando pongo <Void, Void, String>
delante de "new AsyncTask ()" como tal:
- ¿Cómo paso un contexto a un AsyncTask?
- Búsqueda automática como tipos de usuario
- Autocompletar TextView con Asynctask y webservice en android 4
- Android Phonegap: Notificar a javascript cuando se termina un AsyncTask
- Cómo gestionar diferentes tareas que deben ser llamadas por AsyncTask
private void registerInBackground() { new AsyncTask() <Void, Void, String>{
Consigo error del compilador:
Syntax error on tokens, delete these tokens
- ListView onScroll añadir más elementos
- ¿Cómo prevenir el retraso de la interfaz de usuario al actualizar la notificación al descargar el archivo?
- Android asynctask con enhebrado
- Acceso a GoogleMap desde fuera del hilo de la interfaz de usuario en Android
- Android Asynctask pasando una sola cadena
- Android AsyncTask no se detendrá cuando se cancela, ¿por qué?
- AsyncTask: onPostExecute se ejecuta dos veces?
- AsyncTaskLoader vs AsyncTask
Debe tener el ()
después de la especificación de tipo de parámetro:
new AsyncTask<Void, Void, String>() { /*Your code(eg doInBackground )*/ }.execute();
Prueba esto:
new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground( Void... voids ) { //Do things... return null; } }.execute();