마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

에러 : Thread already started (싱글톤과 Thread 문제)

0 추천
- 로그캣

java.lang.IllegalStateException : Thread already started (Main Activity에서 에러납니다.)

 

-내용

문제가 되는 부분은 찾아서 테스트 코드 만들어 봤는데 왜 에러가 나는지 모르겠습니다.

1. 싱글톤 패턴이 적용되고 Thread를 상속 받은 클래스가 있습니다.

2. MainActivity에서 위 객체의 인스턴스를 가지고 오고 start()를 호출해 스레드를 가동 시킵니다.

3. 프로그램 정상 종료 후 다시 프로그램 실행시 위 에러나 납니다.

 

- 테스트 코드

MainActivity

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        tt = Test.getInstance(); // tt는 멤버 변수
       
        if(!tt.isAlive())
         tt.start();

}

 

tt의 run이나 생성자에서는 아무것도 하지 않습니다.
익명사용자 님이 2013년 8월 21일 질문
메인액티비티에 onDestroy 등에서 interrupt로 스레드 종료시켜도 봤지만 해결되지 않았습니다. ㅠㅠ

1개의 답변

0 추천
앱을 종료해도 일정 시간동안 메모리가 캐시되어 있습니다.

싱글톤 객체를 사용하시려면 반드시 앱 종료 시점에 싱글톤 객체를 release 시키는 작업을 해줘야 합니다.
NoBrain (1,590 포인트) 님이 2013년 8월 21일 답변
...