2009-10-12 5 views
0

J'ai une activité qui commence par un AsyncTask pour vérifier la connexion à mes serveurs api. Comme cela ne devrait pas s'exécuter dans le thread de l'interface utilisateur, j'ai créé une asyncTask pour cela.AsyncTask dans OnCreate échoue à l'exécution, comment cela peut-il être évité sous Android?

Le problème est d'obtenir une exception d'exécution lorsque je démarre le processus d'arrière-plan de la tâche asynchrone.

Comment puis-je éviter cela?

De journal:

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) 
+0

Vous voulez écrire du code? – Felix

Répondre

2

vous créez le AsyncTask dans un autre thread que le thread d'interface utilisateur? C'est presque impossible de déboguer sans voir le code que vous utilisez.

0

De l'exception ci-dessus, je suppose que vous faites quelque chose qui dépend de Handler dans le doInBackground, qui est supposé être en cours d'exécution dans thread séparé. S'il vous plaît poster votre code de cette fonction.

Questions connexes