作者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)
1F:推 asilzheng:根据log HTTP_TEST的67行改用mTextView1.getText(); 10/10 22:42
2F:→ asilzheng:试试 猜想你用的getEditableText可能回传了 null 10/10 22:43
3F:推 s511320:加上thread应该可行 我之前也是有这类的问题 解决了 10/10 22:53
4F:→ nobody1:main thread不能 http connection 10/10 23:28
5F:→ aiweisen:67行修改完也是不行 也建立一个新的thread来做POST 10/11 17:39
6F:→ aiweisen:所以出现这个问题 仍表示httpconnection还在main thread 10/11 17:40
7F:→ aiweisen:中? 10/11 17:41
8F:→ asilzheng:你的HTTP5.java做的事情是将设定放在另一个thread中 10/11 19:55
9F:→ asilzheng:而不是按下去後产生另一个thread来连线 10/11 19:55
10F:→ Killercat:handler.post(new runnable(){...})很好很强大 10/14 07:34
11F:→ Killercat:建议用用看这个,可以比较无痛的改现有的code 10/14 07:34
12F:→ Killercat:不过我不建议在心专案过度使用这个东西就是 10/14 07:34