Handler与runOnUiThread更新UI有什么区别?
分别更适合在哪种情况下用?
阿神2017-04-17 17:58:13
구현 원칙상 둘 사이에는 차이가 없습니다. runOnUiThread
도 Handler
의 도움으로 구현됩니다.
사용 시나리오의 경우 runOnUiThread
는 사용이 간편하고 동일한 Handler
을 공유하므로 효율적이고 편리하게 사용할 수 있습니다. 또한, 메인 스레드에서 직접 호출하면 runOnUiThread
도 메시지 큐에 푸시하지 않고 바로 판단하여 실행할 수 있습니다.
및 Handler
은 runOnUiThread
보다 더 기본적이므로 표시 및 지연과 같은 기능을 구현할 수 있으며 기본 스레드 대신 다른 메시지 루프 스레드를 푸시할 수 있습니다.
PHP中文网2017-04-17 17:58:13
runOnUiThread는 Runnable 객체를 메시지로 직접 캡슐화하고 이를 실행을 위해 메인 스레드의 Looper에 전달합니다. 실행 코드는 다음과 같습니다.
으아악Handler가 동일한 효과를 얻으려면 먼저 Handler에 바인딩된 Looper가 Looper.getMainLooper()를 통해 얻을 수 있는 메인 스레드의 Looper여야 합니다. 그런 다음 게시를 통해 실행 가능한 개체도 보냅니다.
본질적으로는 차이가 없습니다.