2009-10-12 14 views
0

我有一個以AsyncTask開始的活動來檢查到我的服務器api的連接。 因爲這不應該在UI線程中運行,所以我爲此做了一個AsyncTask。OnCreate中的AsyncTask在運行時失敗,在Android中如何避免這種情況?

問題是,當我開始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) 
+0

小心發佈一些代碼? – Felix 2009-10-12 15:47:06

回答

2

你比UI線程的線程上創建的AsyncTask?這幾乎不可能在沒有看到您使用的代碼的情況下進行調試。

0

從上面的例外中,我猜你正在做一些取決於處理器doInBackground,這是假設是在單獨的線程中運行。請發佈您的功能代碼。

相關問題