看板 AndroidDev 關於我們 聯絡資訊
Hi guys: 小弟我最近使用AsyncTask時,發現在2.3.6的版本上面會卡住 不曉得有沒有人有相同的問題 myTask = new MyAsyncTask(); //在Debug時,這邊就卡住了 myTask.execute(); 但我在4.x版本卻不會有這個問題 也去查了該API,它於第3版就加入了 而2.3.6的版本是API 10,所以應該有支援才對 請問大家有相同的問題,謝謝 -- 『控制自己的慾望,認識自己的無知,做自己的主人』 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.176.236
kewang:log 04/20 23:41
KeySabre:AsyncTask在這兩版本用起來沒啥差,問題應該在其他部份。 04/20 23:49
KeySabre:怎麼這個板常有人問問題都描述不清等人觀落陰... 04/20 23:49
kewang:其實很多程式版都是這樣子,習慣就好 XD 04/21 00:09
※ 編輯: areyo 來自: 59.127.191.91 (04/21 07:53) ※ 編輯: areyo 來自: 59.127.191.91 (04/21 07:54)
areyo:這是Log: http://codepad.org/cfisvpaL 04/21 07:56
KeySabre:MainActivity的271行有啥 04/21 10:34
areyo:code : http://codepad.org/s7OiPWGU 04/21 14:23
areyo:271行其實也沒跑到,Status_txt.setText("Please Enter Your 04/21 14:24
areyo:我是一個button去執行的 04/21 14:24
kewang:沒有原始code很難觀落陰吧... 04/21 14:52
kewang:不過看起來似乎是ui thread的問題 04/21 14:53
areyo:完整的Code: http://codepad.org/FVfS35ya 04/21 16:41
areyo:麻煩你,謝謝 04/21 16:42
KeySabre:logcat訊息是click造成 但code 271行好像對不到? 04/21 19:53
KeySabre:你要catch的NetworkOnMainThreadException在api level 11 04/21 19:54
KeySabre:才有 所以2.3.6的dvm不認識 就丟出VerifyError 04/21 19:55
KeySabre:另外 在doInBackground catch NetworkOnMainThread不合理 04/21 19:58
KeySabre:因為它本來就不會在UI thread 其他的callback才會 04/21 20:00
KeySabre:印Thread.currentThread().getName()是不是main就知道了 04/21 20:01
KeySabre:或者用Looper.myLooper()==Looper.getMainLooper()判斷 04/21 20:02
areyo:KeySabre,可以了,可是有點不解的是,那它怎麼會卡在new那邊 04/21 21:22
areyo:不是應該是到doInBackground那邊才會有問題嗎?? 04/21 21:24
areyo:再麻煩你解說,謝謝 04/21 21:34
KeySabre:建議你查好VerifyError是什麼 再來發文分享給大家 04/21 23:02
areyo:好的,謝謝你的協助處理 04/22 10:51