Android의 runOnUiThread 이해
Android 개발에서 UI 스레드는 사용자 상호 작용을 처리하고 사용자 인터페이스를 업데이트하는 역할을 담당합니다. 모든 UI 작업이 UI 스레드에서 수행되도록 하려면 runOnUiThread 메서드가 일반적으로 사용됩니다.
제공된 코드 조각에서는 별도의 스레드 내에서 UI를 업데이트하려고 시도합니다. runOnUiThread를 사용합니다. 그러나 현재 구현이 올바르지 않아 버튼 클릭 시 응답하지 않는 동작이 발생합니다. 이유는 다음과 같습니다.
runOnUiThread의 잘못된 사용
runOnUiThread 메서드는 Runnable 인스턴스를 인수로 받아들입니다. 코드에서 현재 활동에 실행 가능 항목을 구현하는 대신 Thread(Runnable)을 통해 새 스레드를 잘못 생성하고 있습니다. 이로 인해 UI 이벤트 처리에 필수적인 루퍼 없이 별도의 스레드가 생성됩니다.
수정된 코드
runThread 메소드는 다음과 같습니다.
private void runThread() { new Thread() { public void run() { while (i++ < 1000) { try { runOnUiThread(new Runnable() { @Override public void run() { btn.setText("#" + i); } }); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); }수정된 코드에서는 새로운 스레드가 생성되고, 하지만 해당 스레드 내에서
runOnUiThread가 호출되어 UI 스레드의 UI 요소를 업데이트합니다. runOnUiThread에 전달된 Runnable 인스턴스에는 버튼의 텍스트를 업데이트하는 코드가 포함되어 있습니다.
runOnUiThread를 올바르게 사용하면 모든 UI- 관련 작업은 메인 UI 스레드에서 발생하여 UI 정지를 방지하고 응답성을 보장합니다.
위 내용은 Android의 `runOnUiThread`를 잘못 사용하면 UI가 응답하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!