2011-01-31 4 views
1

Thread.sleep 전에 화면 출력 (토스트 또는 setContentView)을 수행하려고하면 절전 모드 (또는 모든 스레드가 절전 모드)까지 표시되지 않습니다. 즉, Thread.sleep 이후에 출력을 수행하면 첫 번째 출력을 덮어 쓰게됩니다. Thread.sleep을 호출하기 전에 View에서 forceLayout을 사용하면 좋지 않습니다. Android는 모든 출력을 저장하고 프로그램이 끝날 때 출력합니다. 만약 내가 PC에서 똑바로 자바 애플 리케이션과 같은 코드를 실행하면 그것은 단지 잘 작동합니다.Thread.sleep 전에 강제로 화면 출력

답변

1

작업을 Handler에 넘깁니다. UI 스레드에서 Thread.sleep을 사용하지 않기를 바란다. 그 이유는 화면이 항상 멈추고 (아마도 프로그램이 응답하지 않아 종료 될 수 있기 때문이다.)

2

UI 스레드에서 sleep()을 수행하면 안됩니다. 이는 사용자가 눈치 챘을 때 전체 UI를 차단할 수 있기 때문입니다.

특정 시간이 지나면 어떤 일이 발생하기를 원하면 Handler을 만들고 그 postDelayed() 방법을 사용하여 지연된 메시지를 게시 할 수 있습니다.

+0

감사합니다. 나는 항상 sleep() 대신에 postDelayed()를 사용해야한다고 생각한다. 문제는 내가 일련의 변화하는 지연 시간을 원한다면, sleep()과 같은 간단한 시퀀스 대신에 postDelayed()에 대한 호출이 중첩되어 있어야한다는 점이다. –

+0

아니면 시간 초과가 증가하면서 postDelayed()를 여러 번 호출 할 수 있습니까? – Thomas

관련 문제