¿Es posible, desde dentro de una AsyncTask que NO sea una clase interna de la clase de actividad llamante, obtener una referencia a la instancia de actividad iniciada? ejecución de AsyncTask?Obteniendo referencia a la actividad de llamada de AsyncTask (NO como clase interna)
Soy consciente de this thread, sin embargo, no trata exactamente cómo hacer referencia a la actividad de la llamada. Algunos sugieren pasar una referencia a la Actividad como un parámetro para el constructor AsyncTask, sin embargo, se informa que hacerlo siempre dará como resultado una NullPointerException.
Por lo tanto, estoy perdido. My AsyncTask proporciona una funcionalidad robusta, y no quiero tener que duplicarlo como clase interna en cada Actividad que quiera usar. Debe haber una solución elegante.
Punto tomada en un solo tratando * * por mí mismo en primer lugar. Tengo curiosidad sobre cómo manejarías mi situación: no es nada complejo; Básicamente estoy tratando de crear una DownloadFileTask para hacer una solicitud HTTP GET básica en las URL aprobadas, y luego la aplicación hará cosas diferentes con los archivos descargados en función de la actividad/estado actual. Tengo diferentes actividades que necesitan descargar archivos para diferentes propósitos. ¿Sería mejor hacerlo con un servicio o alguna otra solución? – stormin986
Ah, ya veo. Tienes dos opciones como yo lo veo. Uno es hacer que 'DownloadFileTask' sea público pero abstracto, y tener implementaciones privadas de clase interna para cosas únicas de una actividad determinada. El otro es hacer público 'DownloadFileTask' y pasar * algo * al constructor. En este caso, para minimizar el acoplamiento, es posible que no desee pasar una 'Actividad', sino algún otro tipo de interfaz que limite lo que' 'AsyncTask' puede hacer. De esta forma, puede optar por implementar la interfaz en una 'Actividad', o como un objeto separado, o lo que sea. – CommonsWare
CW, has sido muy útil en muchos de mis, ¡así que gracias! Si puedo pasar una instancia de mi actividad a una AsyncTask pública, creo que es la mejor manera de hacerlo. Mencionas minimizar el acoplamiento ... ¿Qué quieres decir exactamente con esto y qué tipo de situaciones generalmente quieres evitar con él? – stormin986