0

내 앱에 문제가 있습니다. 저는 캔버스 위에 그림을 그릴 수있는 SurfaceHolder를 가지고 있습니다.
surfaceCreated 메소드 아래에서 thread.start();
surfaceDestroyed 메서드에서 thread.join();
내 앱을 실행하고 홈 키를 누른 다음 whoch가 surfaceDestroyed 메소드를 호출합니다.

문제는 내가 나중에 다시 시도하고 내 응용 프로그램을 다시 실행할 때 예외가 시작된 스레드를 얻는 것입니다. 왜 이런거야? 심지어 스레드가 이미 isAlive()을 사용하여 실행 중인지 확인하기 위해 테스트 중입니다. thread.join 라인을 thread.wait으로 대체해야합니까?
만약 그렇다면 어떻게 스레드를 다시 시작하지 않고 surfaceCreated에서 재개 할 수 있습니까?Android thread.join() 앱을 다시 시작하면 스레드 강제 종료

답변

1

먼저 - wait 메서드는 스레드를 중단시키지 않습니다.
두 번째 - join은 스레드가 죽을 때까지 대기합니다.
셋째 - 새 스레드를 만들고 동일한 스레드를 실행하지 않는 것이 좋습니다.

+0

아, 덕분에 잘 작동합니다! –

관련 문제