我有一个方法,我打电话,但是,对于较新版本的Android它失败。显然,这是由于缺少线程。我的方法是发送一条消息到我的服务器。这是代码(SANS线程)在android中创建一个线程不工作
public String sendMessage(String username, Editable message){
BufferedReader in = null;
String data = null;
try{
DefaultHttpClient client = new DefaultHttpClient();
URI website = new URI("http://abc.com/user_send.php?username="+username+"&message="+message);
HttpPost post_request = new HttpPost();
post_request.setURI(website);
HttpGet request = new HttpGet();
request.setURI(website);
//executing actual request
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String l = "";
String nl = System.getProperty("line.separator");
while ((l = in.readLine()) != null) {
sb.append(l);
}
in.close();
data = sb.toString();
return data;
}catch (Exception e){
return "ERROR";
}
}
现在,只是试图把一个线程它周围:
public String sendMessage(String username, Editable message){
BufferedReader in = null;
String data = null;
Thread sendThread = new Thread(){
try{
DefaultHttpClient client = new DefaultHttpClient();
URI website = new URI("http://thenjtechguy.com/njit/gds/user_send.php?username="+username+"&message="+message);
HttpPost post_request = new HttpPost();
post_request.setURI(website);
HttpGet request = new HttpGet();
request.setURI(website);
//executing actual request
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String l = "";
String nl = System.getProperty("line.separator");
while ((l = in.readLine()) != null) {
sb.append(l);
}
in.close();
data = sb.toString();
return data;
}catch (Exception e){
return "ERROR";
}
} sendThread.start();
}
但是,这并不工作。我究竟做错了什么?另外,如果你注意到我打破了关于HttpClient的任何基本规则,请让我知道。
嗯......我试图运行它但是,我在括号中出现错误。我不认为我正确使用你的答案。对不起,我对编程还很陌生。 – EGHDK 2012-04-23 03:50:40
什么是错误? – 2012-04-23 04:07:52
它说致命的例外:04-23 00:30:18.234:E/AndroidRuntime(29500):java.lang.RuntimeException:不能创建处理程序内部线程没有调用Looper.prepare() – EGHDK 2012-04-23 04:31:07