안드로이드 개발 질문/답변
(글 수 45,052)
제가 thread로 2초마다 rss수신해오게 해놧는데요,
어플 종료 후에도 thread가 계속 돌아가는거 같더군요.
보니까 thread 종료 메소드로 종료 하면 된다던데요...
사용자가 작업관리자로 그냥 프로세스 종료해서 thread 종료 메소드가 호출 안됄수도 있잖아요?.
이 점을 어떻게 해야할지... 감이 안오내요
2012.07.18 19:59:24
저도 배우는 학생이라 도움이 될 답변인지는 모르겠습니다만
public void onBackPressed(){
android.os.Process.killProcess(android.os.Process.myPid());
}
이런 식으로 죽이면 되지않을까싶네요.
2012.07.18 20:02:50
아까 책에 서 본 내용인데 stop() 메소드 대신 interrupt()를 쓰라고 권장하는군요..
'stop()메서드는 대기상태인 스레드를 무조건 재실행시켜서 스레드의 종료를 요청하게 된다. 문제는 파일의 I/O에 의하여 대기하고 있는 스레드를 강제로 깨우고 종료시킬 때인데, 이때 안드로이드 시스템이 파일을 읽어온 데이터를 넘겨줄 스레드를 찾지못하는 상태가 발생하게 된다. 안드로이드는 예기치못한 에러로 인하여 스레드를 강제 종료시킨 스레드뿐만아니라 다른파일의 I/O를 대기하고있는 스레드에도 영향을 주게 된다.'




쓰레드는 완벽하게 종료되지 않습니다. 그러니까 잔재가 남는다고 해야되나..
종료 비슷하게 죽이는 메소드가 있는 걸로 알고있습니다.