쓸만한 애플리케이션을 만들다 보면 스레드 사용이 빈번하다. 또한 나를 포함한 대부분의 어플 사용자들은 실행중인 어플을 종료시키기위해 취소버튼을 연타하는 품격없는 행위를 지금 이시간에도 누군가는 분명 하고있을것이다. 

 이때 스레드를 정상적으로 종료시켜주기 위해 Thread.close(); 와 같은 코드를 넣어주는데 역시 나를포함한 초보개발자들이 자주 실수하는 부분이다. 스레드가 진행되다 다양한(?) 이유로 스레드가 종료되는데 또는 스레드를 초기화 하지 않은 상태 ( Thread mThread = null; 이렇게 선언만 해놓은 상태) 에서 이 코드를 만나면 LogCat에서 쳐다보기도 싫은 빨간글씨들이 담배를 생각나게한다.

 보통 안드로이드에서 쓰레드는 엑티비티 생명주기 마지막 finish()에서 선언해주는데 다음과 같이 쓰면 되겠다.

public void finish() {

if(mThread!=null){

    mThread.close();

 }

super.finish();

 }

쓰레드 뿐 아니라 .close()를 사용하는 다양한 객체들 종료시 간단한 if문을 통해 스레드가 null이 아닌지 확인하고 종료하는 습관을 들이자.


+ Recent posts