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 中国語 Web サイトの他の関連記事を参照してください。