【AndroidTraining】Thread 1
Lesson
Thread 1
Mission
下記の仕様を満たすアプリを作りましょう。
- 別スレッドからTextViewの更新をする
Snap Shot
※count up していく
Step by Step
- 新規に
TrainingThreadActivity.java
を追加する - TextView(別スレッドから更新する)、Button(別スレッドを開始する)を追加する
- Buttonにクリックリスナーを追加する
- 別スレッドを新規に作成する
new Thread(() -> { // 時間のかかる処理等を記載する }).start();
5 . メインスレッド(UIスレッド)へ通知を行うために、Handlerを作成します。
その際に、getMainLooperを使い、メインスレッドのLooperを取得し、Handlerの引数として渡します。
このHadnlerに対して、post(Runnable r)
メソッドを呼ぶことで、
メインスレッドのViewに操作することができるようになります。
Handler handler = new Handler(getMainLooper()); String text = "count:"; for (int i = 0; ; i++) { try { String finalText = text + i; Thread.sleep(THREAD_SLEEP_TIME); handler.post(() -> mTextView.setText(finalText)); } catch (InterruptedException e) { e.printStackTrace(); } }
Code
Thread 1 · atuyan39/AndroidTraining@fa686c4 · GitHub
Reference
Memo
ThreadやLooperやMessage、細かい機構までわかるように今後問題を作っていきたい。