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

안드로이드 스레드 관련 에러로그좀 봐주세요

0 추천

 

내용은 다음과 같으며, 어플을 실행시킨 다음, 홈키를 눌러 백그라운드로 내렸다가 다시 올렸을경우 

익셉션이 발생합니다.

 

SurfaceView를 상속받은 DrawClass클래스에서 발생하며

 

surfaceCreated() { 에서 thread.start(); 를 해주고있고

surfaceDestroyed() {에서 thread.interrupt(); 를 해주고 있습니다.

홈키로 나갔을 때, 디스트로이가 아니라 포즈상태가 돼 있다가, 다시 실행시키면서 Create를 다시해서 생기는 문제인가요 ?

원인을 잘 모르겠습니다.

음무 (17,820 포인트) 님이 2013년 12월 19일 질문

1개의 답변

+1 추천
 
채택된 답변
Thread Already Started

이미 실행한 스레드를 또 실행하려니 발생하는거 같네요..

홈키를 눌러서 백그라운드에 있어도 스레드는 활동하고 있답니다.
아즈라엘 (4,010 포인트) 님이 2013년 12월 19일 답변
음무님이 2013년 12월 20일 채택됨
그럼 홈키를 눌렀다가 다시 restart될때 surfaceOnCreated가 다시 호출되는건 왜그런가요? 제가 생각했을때는 onCreate는 어플이 실행될 때 한번만 호출되는것같은데 홈키눌렀다가 다시 활성화시키는데 재호출이 되는 이유를 모르겠습니다. 어떻게 처리해야할까요
surfaceOnCreated 는  SurfaceView 가 background 되면 Suface가 파괴되면서 나타나는 현상이고..Thread Already Started 와는 별개의 이야기 같네요..
surfaceOnCreated에서 thread를 실행시켜서 그런것같습니다.
포즈상태에 들어갔다가 재호출되면서 다시 온크리에이트가 호출되고 스레드를 재실행시켜서 그런게 맞는지 ..
어떻게 처리해야할지 혹시 도움 주실수 있을까요
surfaceOnCreate에서 쓰레드가 이미 사용중인지 체크하는 코드를 넣으세요.
...