안드로이드 개발 질문/답변
(글 수 45,052)
Looper.myLooper().quit();
이거 해주면 실행은 되는데 에러 ㅠㅠㅠ
어떻게 해봐도 quit는 에러 발생하네요 ㅠ
따로 quit 사용하는 방법있나요?ㅜㅜㅜㅜㅜㅜ
public void run(){
Looper.prepare();
Looper.loop();
}
public Handler mBackHandler = new Handler(){
public void handleMessage(Message handleMsg){
try {
if(handleMsg.what==1){
serverAddress = InetAddress.getByName((String)handleMsg.obj);
}else if(handleMsg.what==2){
//Log.v((String)handleMsg.obj,"bangcheck");
outPacket = new DatagramPacket(((String)handleMsg.obj).getBytes(), ((String)handleMsg.obj).getBytes().length, serverAddress, port);
socket.send(outPacket);
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(handleMsg.what==0){
Looper.myLooper().quit(); //이부분이 항상 에러 ㅠ
}
}
};
}




myLooper 는 loop() 메소드전에 사용하셔야 합니다.
미리 루퍼를 구해놓고 차후 죽일 때 미리 구한 루퍼의 quit 메소드를 호출하셔야 합니다.
Looper mLoop;
public void run() {
Looper.prepare();
mLoop = Looper.myLooper();
Looper.loop();
}
Handler mBackHandler = new Handler() {
mLoop.quit();
};
도움이 될까하고 확신이 없지만 의견을 제시해 봅니다. 혹시라도 틀린분이 있으면 댓글 부탁드립니다. ^^