UIThread는 애플리케이션의 기본 실행 스레드입니다. 대부분의 애플리케이션 코드가 실행되는 곳입니다. 모든 응용 프로그램 구성 요소 (Activities, Services, ContentProviders, BroadcastReceivers)가이 스레드에서 생성되고 이러한 구성 요소에 대한 모든 시스템 호출이이 스레드에서 수행됩니다.
예를 들어 애플리케이션이 단일 활동 클래스라고 가정 해 보겠습니다. 그런 다음 모든 수명주기 메서드와 대부분의 이벤트 처리 코드가이 UIThread에서 실행됩니다. 이 같은 방법이 있습니다 onCreate
, onPause
, onDestroy
, onClick
인터페이스에 대한 모든 업데이트 한 위치 등 또한이입니다. UI를 업데이트하거나 변경하는 모든 것이 UI 스레드에서 발생합니다.
애플리케이션의 프로세스 및 스레드에 대한 자세한 내용을 보려면 여기를 클릭하십시오.
백그라운드에서 작업 할 새 스레드를 명시 적으로 생성 할 때이 코드는 UIThread에서 실행되지 않습니다. 그렇다면이 백그라운드 스레드가 UI를 변경하는 작업을 수행해야한다면 어떻게 될까요? 이것이 그 이유 runOnUiThread
입니다. 실제로 Handler를 사용해야합니다 (자세한 내용은 아래 링크 참조). 이러한 백그라운드 스레드에 UI를 수정할 수있는 코드를 실행할 수있는 기능을 제공합니다. UI 수정 코드를 Runnable 개체에 넣고 runOnUiThread 메서드에 전달하여이를 수행합니다.
작업자 스레드 생성 및 UI 업데이트에 대한 자세한 내용은 여기를 클릭하십시오.
저는 개인적으로 runOnUiThread
계측 테스트 에서만이 방법을 사용합니다 . 테스트 코드는 UIThread에서 실행되지 않으므로이 메서드를 사용하여 UI를 수정하는 코드를 실행해야합니다. 그래서 그것을 사용하여 클릭 및 키 이벤트를 내 애플리케이션에 삽입합니다. 그런 다음 응용 프로그램의 상태를 확인하여 올바른 일이 발생했는지 확인할 수 있습니다.
UIThread에서 코드 테스트 및 실행에 대한 자세한 정보는 여기를 클릭하십시오.