나는 전화 할 방법이 있지만 최신 안드로이드 버전에서는 실패한다. 분명히 이것은 스레딩 부족 때문입니다. 내 방법은 내 서버에 메시지를 보내는 것입니다.android에서 쓰레드가 작동하지 않는다.
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();
}
을하지만 그것은 작동하지 않습니다 이것은 단지 주위에 실을 넣어하려고, 이제 코드 (스레딩 산세)
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";
}
}
입니다. 내가 도대체 뭘 잘못하고있는 겁니까? 또한, HttpClient와 관련하여 안드로이드의 기본 규칙을 위반 한 사실을 알게되면 알려 주시기 바랍니다.
흠 ... 나는 그것을 실행 시도 시작 하지만, 대괄호에 오류가 발생합니다. 나는 당신의 대답을 올바르게 사용하고 있다고 생각하지 않습니다. 죄송합니다. 아직 프로그래밍을 처음 접했습니다. – EGHDK
무엇이 오류입니까? –
그것은 치명적인 예외가 : 04-23 00 : 30 : 18.234 : E/AndroidRuntime (29500) : java.lang.RuntimeException : Looper.prepare()를 호출하지 않은 스레드 내부에서 처리기를 만들 수 없습니다 – EGHDK