0
이 스레드가 있습니다. 이전에 스레드없이 코드를 테스트하고 있었는데 정상적으로 작동했습니다. 값을 가져 와서 처리했습니다. 이것을 스레드에 넣으면 처리기의 handleMessage 메소드가 호출되지 않습니다. 누군가 도와 주실 수 있습니까?스레드 내부에서 처리기의 동작이 다른가요?
public class ServiceQuery implements Runnable
{
public void run()
{
Looper.myLooper().prepare();
while(true)
{
Log.d("D","Starting");
fetch();
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
private synchronized void fetch()
{
Log.d("D","In fetch()");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("sessionid", Server.getInstance().getSessionID()));
nameValuePairs.add(new BasicNameValuePair("session", App.getInstance().getSelectedDoodle().getId()));
nameValuePairs.add(new BasicNameValuePair("passcode", App.getInstance().getSelectedDoodle().getPassword()));
nameValuePairs.add(new BasicNameValuePair("last-message-id", App.getInstance().lastDrawingID));
Handler handler = new Handler()
{
public void handleMessage(Message message)
{
Log.d("D","got response");
switch(message.what)
{
case HttpConnection.DID_SUCCEED:
Log.d("D","success" + message.obj.toString());
}
}
}
Server.getInstance().SendHTTPRequest("get-messages", nameValuePairs, handler);
Log.d("D","HTTP away");
}
}
감사합니다 .... 나는 그것에 대해 궁금해했지만 예외 (NullPointer 또는 뭔가)를 기대하고 있었다. – kishu27