作者aiweisen (三重劉德華)
看板AndroidDev
標題[問題] unfortunately has stopped
時間Wed Oct 10 20:37:56 2012
我是照著這本書「google android SDK 開發範例大全」第一版的
中的第八章練習http的post與get
我原本在4.0.3的版本運行http的post與get 是不能運行 在2.0.3就可以
上網找了原因發現是新版本的網路連結是不能運行在main thread
不過我4.0.3不是出現所謂的ANR 而是當我按下button傳送post或get時
是出現 unfortunately XXX has stopped 就得結束應用程式了
但因為我的thread不是很懂 所以我去找Thread的使用方式
有兩個版本thread的使用方式 都是來自同一個網站的作者
第一個版本如下(參考的網站
http://ppt.cc/Um8Z )
傳統的thread的使用方式 我比較可以理解這種 但照著做還是出現相同問題
還是只有2.0.3可以正常執行 反倒是4.0.3 按下按鈕跑出unfortunately XXX has stopped
看了logcat出現的錯誤訊息
http://ppt.cc/~K-Z
------
第二個版本如下(參考的網站
http://ppt.cc/NoZc )
這是他直接針對他自己舊文章中的post跟get做修改 改成可以在android4.X使用
但我照著做相同的thread也是出錯
這個反倒是一執行程式就出現unfortunately XXX has stopped
而不是按下按鈕跑出錯誤的訊息
---
程式碼:
http://ppt.cc/ERCX
請忽略裡面的uriAPI字串是否正確...因為原本我是連到私人的網站
另外兩個版本的Button數量沒有一致 也請忽略
請問我是thread的觀念錯誤嗎?
---
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.77.3
※ 編輯: aiweisen 來自: 118.167.77.3 (10/10 20:39)
推 asilzheng:根據log HTTP_TEST的67行改用mTextView1.getText(); 10/10 22:42
→ asilzheng:試試 猜想你用的getEditableText可能回傳了 null 10/10 22:43
推 s511320:加上thread應該可行 我之前也是有這類的問題 解決了 10/10 22:53
→ nobody1:main thread不能 http connection 10/10 23:28
→ aiweisen:67行修改完也是不行 也建立一個新的thread來做POST 10/11 17:39
→ aiweisen:所以出現這個問題 仍表示httpconnection還在main thread 10/11 17:40
→ aiweisen:中? 10/11 17:41
→ asilzheng:你的HTTP5.java做的事情是將設定放在另一個thread中 10/11 19:55
→ asilzheng:而不是按下去後產生另一個thread來連線 10/11 19:55
→ Killercat:handler.post(new runnable(){...})很好很強大 10/14 07:34
→ Killercat:建議用用看這個,可以比較無痛的改現有的code 10/14 07:34
→ Killercat:不過我不建議在心專案過度使用這個東西就是 10/14 07:34