У меня есть метод, который я вызываю, но для более новых версий Android он терпит неудачу. По-видимому, это связано с отсутствием резьбы. Мой метод - отправить сообщение на мой сервер. Это код (без резьбы)Создание потока в 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, пожалуйста, дайте мне знать.
Хм ... Я попытался запустить его но, я получаю ошибку на кронштейне. Я не думаю, что правильно использую ваш ответ. К сожалению, я все еще очень новичок в программировании. – EGHDK
Какая ошибка? –
Он говорит: «Фатальное исключение: 04-23 00: 30: 18.234: E/AndroidRuntime (29500): java.lang.RuntimeException: не удается создать обработчик внутри потока, который не вызвал Looper.prepare() – EGHDK