Tengo una actividad que muestra una vista de lista. Al hacer clic en un elemento, se inicia una segunda actividad que ejecuta una AsyncTask que recupera una URL remota según el elemento al que se hace clic, analiza los resultados y luego los muestra en otra vista de lista. Mientras se ejecuta la tarea asíncrona, tengo una vista de "carga" que solo muestra una imagen y texto. El problema es si inicio la actividad que ejecuta la tarea asincrónica, luego presiono hacia atrás y comienzo otra instancia de dicha actividad, obtengo una fuerza cercana.Android: manejo del botón Atrás durante asynctask
He tratado
private class getlist extends AsyncTask implements OnDismissListener{ ... @Override public void onDismiss(DialogInterface arg0) { this.cancel(true); } }
pero el problema persiste.
También han puesto
if(!isCancelled()){ setContentView(R.layout.list); ... etc. }
en mi llamada onPostExecute, pero tampoco esto no impide que la vista se encienda, o el problema es otra cosa.
Logcat muestra "hoja de vida inesperada, mientras que ya se reanudó .. obtuve RemoteException enviar setActive (falsa) de notificación" A continuación, un poco más abajo en el registro, "java.net.SocketTimeoutException: socket no está conectado"
Cómo puedo resolver esto?
actualización:
E/AndroidRuntime(19379): Uncaught handler: thread AsyncTask #2 exiting due to uncaught exception E/AndroidRuntime(19379): java.lang.RuntimeException: An error occured while executing doInBackground() E/AndroidRuntime(19379): at android.os.AsyncTask$3.done(AsyncTask.java:200) E/AndroidRuntime(19379): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) E/AndroidRuntime(19379): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) E/AndroidRuntime(19379): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) E/AndroidRuntime(19379): at java.util.concurrent.FutureTask.run(FutureTask.java:137) E/AndroidRuntime(19379): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) E/AndroidRuntime(19379): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) E/AndroidRuntime(19379): at java.lang.Thread.run(Thread.java:1096) E/AndroidRuntime(19379): Caused by: java.lang.NullPointerException E/AndroidRuntime(19379): at com.metatroid.android.swim.ThreadViewer.getPosts(ThreadViewer.java:153) E/AndroidRuntime(19379): at com.metatroid.android.swim.ThreadViewer$getlist.doInBackground(ThreadViewer.java:70) E/AndroidRuntime(19379): at com.metatroid.android.swim.ThreadViewer$getlist.doInBackground(ThreadViewer.java:1) E/AndroidRuntime(19379): at android.os.AsyncTask$2.call(AsyncTask.java:185) E/AndroidRuntime(19379): at java.util.concurrent.FutureTask$Sync.innerRun
Su error, si está leyendo LogCat correctamente, no tiene nada que ver con esto, sino que es un problema de red cuando intenta descargar los datos. – CommonsWare
@CommonsWare - He actualizado la pregunta con lo que creo que es el rastro correcto – aperture