AsyncTask в OnCreate дает сбой во время выполнения, как этого можно избежать в Android? - PullRequest
0 голосов
/ 12 октября 2009

У меня есть действие, которое начинается с AsyncTask для проверки подключения к моим серверам API. Так как это не должно выполняться в потоке пользовательского интерфейса, я сделал AsyncTask для этого.

Проблема заключается в том, что при запуске фонового процесса Asynctask возникает исключение времени выполнения.

Как мне этого избежать?

Из журнала:

10-12 14:18:56.476: ERROR/AndroidRuntime(1523): java.lang.RuntimeException: An error occured while executing doInBackground()
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:234)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:258)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at java.util.concurrent.FutureTask.run(FutureTask.java:122)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at java.lang.Thread.run(Thread.java:1058)
10-12 14:18:56.476: ERROR/AndroidRuntime(1523): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
10-12 14:18:56.476: ERROR/AndroidRuntime(1523):     at android.os.Handler.<init>(Handler.java:121)

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

Вы создаете AsyncTask в потоке, отличном от потока пользовательского интерфейса? Это почти невозможно отладить без просмотра кода, который вы используете.

0 голосов
/ 21 августа 2011

Из приведенного выше исключения, я предполагаю, что вы делаете что-то, что зависит от обработчика в doInBackground, который, как предполагается, выполняется в отдельном потоке Пожалуйста, оставьте свой код этой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...