0

サーバー API への接続を確認するために、AsyncTask で開始するアクティビティがあります。これは UI スレッドで実行されるべきではないため、このために 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)
4

2 に答える 2

2

UI スレッド以外のスレッドで AsyncTask を作成していますか? これは、使用しているコードを確認せずにデバッグすることはほぼ不可能です。

于 2009-10-12T23:27:49.757 に答える
0

doInBackground上記の例外から、別のスレッドで実行されていると思われるの Handler に依存する何かをしていると思います。その関数のコードを投稿してください。

于 2011-08-21T16:18:57.380 に答える