質問: ボタンの背景を変更してスリープする 私はボタンの背景を赤に変えて、もう1秒間待ってから別のアクティビティを呼びたいと思っています。 これは私のコードです: ``` btn1.setBackgroundColor(Color.RED); SystemClock.sleep(1000); startActivity(intent); ``` 問題は、アプリケーションが1秒間スリープしてアクティビティを開始するが、ボタンの色は変わらないということです。これをどうすれば解決できますか?
回答: あなたが使うとき SystemClock.sleep(1000); ルーパーを扱うメインスレッドはスリープ状態になります。 そしてそれが返ってくると、最初に色を変えて、アクティビティを開始します。遅れることなく次々に行われるので、変更された色を見ることができません。 ハンドラpostDelayedを使用すると、必要な遅延の後でアクティビティを実行するのに役立ちます。また、スリープ状態でメインルーパースレッドをブロックしません