gpt4 book ai didi

java - 在android中创建线程不起作用

转载 作者:行者123 更新时间:2023-12-02 00:24:37 24 4
gpt4 key购买 nike

我有一个正在调用的方法,但是对于较新版本的 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();
}

但这行不通。我究竟做错了什么?另外,如果您发现我违反了 android 中有关 HttpClient 的任何基本规则,请告诉我。

最佳答案

您的实现不正确 - 您没有重写 run() 方法

class SendThread extends Thread {
public void run(){
//add your implementation here
}
}

启动线程

SendThread sendThread  = new SendThread();
sendThread.start();

关于java - 在android中创建线程不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10274308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com