У меня есть Activity, который показывает listview. На элементе щелкните по второму действию, которое запускает AsyncTask, который извлекает удаленный URL-адрес на основе того, какой элемент кликается, анализирует результаты, затем отображает эти результаты в другое представление списка. Пока выполняется задача async, у меня есть представление "загрузка", которое отображает только изображение и текст. Проблема в том, что если я инициирую действие, выполняющее задачу async, а затем вернусь назад и запустим другой экземпляр указанного действия, я получу силовое соединение.
Я пробовал
private class getlist extends AsyncTask implements OnDismissListener{ ... @Override public void onDismiss(DialogInterface arg0) { this.cancel(true); } }
Но проблема не устранена.
Я также добавил
if(!isCancelled()){ setContentView(R.layout.list); ... etc. }
в мой вызов onPostExecute, но либо это не препятствует переключению представления, либо проблема - это что-то еще.
logcat показывает "неожиданное возобновление, когда оно уже возобновлено.. получил RemoteException, отправив setActive (false) уведомление" Затем немного дальше в журнале, "java.net.SocketTimeoutException: Socket не подключен"
Как я могу это решить?
обновление:
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