안드로이드 개발 질문/답변
(글 수 45,052)
가장 확실하게 자신의 어플 프로세스를 죽이는 방법이 아래와 같다고 알고있는데,
moveTaskToBack(true);
finish();
android.os.Process.killProcess(android.os.Process.myPid());
실제폰에서는 아주 아주 아주 가끔 있을까 말까인듯하고, 에뮬에서는 자주(?)
ANR 오류가 뜨네요.
어플에서 내부적으로 쓰레드가 하나 돌고있는데, setDaemon(true)으로 되어있습니다.
쓰레드가 동작중일때 android.os.Process.killProcess(android.os.Process.myPid()); 에서 해당 오류가 발생했을까요??;;
finish()로만 종료했을경우는 문제가 없는듯합니다.
첨부파일은 에뮬상에 data/anr 들어있는 로그파일 입니다.




먼저 쓰레드 부분에 로그를
찍어보시고
위의 방법으로 종료후에 쓰레드도 정상적으로
종료되는지 확인해보시는게
좋을거 같습니다
예전에 저도 비슷한 경우가 있었는데 어플종료나 혹은 홈으로 내려오면 바로 에러가 나다군요. 확인해보니 쓰레드가 계속 돌고있었구요
그래서 어플종료시나 홈으로 내려올때(pause때)
쓰레드에 플래그를 두어 일시정지시키거나
쓰레드부터 먼저 종료하고 액티비티를 종료하였습니다