このコードは、スレッドを使用して Android でタイマーを実装しようとしますが、スレッドの同期による問題が発生します。明確にするために、このコードは 5 分から 0:00 までカウントダウンするタイマーを定義しています。
Android では、メイン スレッド (UI スレッド) 以外のスレッドからユーザー インターフェイスを操作することはできません。この場合、Thread t によって作成されたスレッドは TextView (UI 要素) を直接更新しようとしているため、エラーが発生します。
この問題に対処するには、いくつかのオプションがあります。
1. CountDownTimer
CountDownTimer は、タイマーの実装を簡素化する Android クラスです。指定した期間と間隔でカウントダウンをスケジュールできます。
例:
2. Handler
Handler は、メインスレッドで実行されるタスクをポストできるようにするクラスです。これにより、UI の更新が常に正しいスレッドで実行されるようになります。
例:
3. Timer
Timer は、別のスレッドでタスクをスケジュールできるようにするクラスです。ただし、メイン スレッドで UI を更新する必要があります。
例:
以上がAndroid のスレッドから UI 要素を安全に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。