2011-10-03 23 views

Respuesta

10

creo que lo que quería era preguntar ¿Cómo escribo un AsyncTask que no pide ningún parámetro. El truco consiste en definir lo que espera usar como parámetro y valor de retorno en la extensión de su clase: class MyClass extends AsyncTask<Void, Void, Void> por ejemplo, no espera ningún parámetro y tampoco devuelve ninguno. AsyncTask<String, Void, Drawable> espera una cadena (o varias cadenas) y devuelve un Disponibles (de su propio doInBackground método para su propio onPostExecute método)

+0

Gracias, eso es muy útil. Necesito establecer algo de texto en una vista personalizada que construí, (sin parámetros establecidos o devueltos) pero ¿cómo hago eso? –

+0

Puede crear un constructor en la clase AsyncTask en el que pasa una referencia a la vista. Si guarda eso en una variable de la clase, puede usar esa variable para establecer texto en el método 'onPostExecute'. Sin embargo, asegúrese de establecer el texto en 'onPostExecute', porque Android no le permite cambiar la UI en un hilo nonUI (su AsyncTask), excepto cuando lo hace en' onPostExecute' – Lars

19

implementación de ejemplo para asíncrono sin params y Bitmap resultado en consecuencia onPostExecute

/** 
* My Async Implementation without doInBackground params 
* 
*/ 
private class MyAsyncTask extends AsyncTask<Void, Void, Bitmap> { 

    @Override 
    protected Bitmap doInBackground(Void... params) { 

     Bitmap bitmap; 

     .... 

     return bitmap; 
    } 

    protected void onPostExecute(Bitmap bitmap) { 

     .... 
    } 
} 

En su actividad, debe agregar esta implementación:

MyAsyncTask myAsyncTask = new MyAsyncTask(); 
myAsyncTask.execute(); 
+0

al llamar a myAsyncTask.execute, isn ' ¿es necesario proporcionar los parámetros? –

+0

Sí. En ese caso, la función se puede ejecutar sin parámetros. Si necesita más información, contácteme. –

+0

y cuál es la mejor manera de contactarlo :) –

Cuestiones relacionadas