구현 원칙상 둘 사이에는 차이가 없습니다. runOnUiThread도 Handler의 도움으로 구현됩니다. 사용 시나리오의 경우 runOnUiThread는 사용이 간편하고 동일한 Handler을 공유하므로 효율적이고 편리하게 사용할 수 있습니다. 또한, 메인 스레드에서 직접 호출하면 runOnUiThread도 메시지 큐에 푸시하지 않고 바로 판단하여 실행할 수 있습니다. 및 Handler은 runOnUiThread보다 더 기본적이므로 표시 및 지연과 같은 기능을 구현할 수 있으며 기본 스레드 대신 다른 메시지 루프 스레드를 푸시할 수 있습니다.
구현 원칙상 둘 사이에는 차이가 없습니다.
runOnUiThread
도Handler
의 도움으로 구현됩니다.사용 시나리오의 경우
runOnUiThread
는 사용이 간편하고 동일한Handler
을 공유하므로 효율적이고 편리하게 사용할 수 있습니다. 또한, 메인 스레드에서 직접 호출하면runOnUiThread
도 메시지 큐에 푸시하지 않고 바로 판단하여 실행할 수 있습니다.및
Handler
은runOnUiThread
보다 더 기본적이므로 표시 및 지연과 같은 기능을 구현할 수 있으며 기본 스레드 대신 다른 메시지 루프 스레드를 푸시할 수 있습니다.runOnUiThread는 Runnable 객체를 메시지로 직접 캡슐화하고 이를 실행을 위해 메인 스레드의 Looper에 전달합니다. 실행 코드는 다음과 같습니다.
으아악Handler가 동일한 효과를 얻으려면 먼저 Handler에 바인딩된 Looper가 Looper.getMainLooper()를 통해 얻을 수 있는 메인 스레드의 Looper여야 합니다. 그런 다음 게시를 통해 실행 가능한 개체도 보냅니다.
본질적으로는 차이가 없습니다.