Shibuyandroidにて学んだこと

Thread & Handler

Thread & Handlerを使った別スレッド処理
苦手意識があったけど、もう大丈夫。把握した。

要は
Runnnable::runに別スレッド処理を書き、
Handler::postでUIに触ればOK

ソース

mHandler = new Handler();
new Thread(new Runnable() {
  public void run() {

    //ここに別スレッドにしたい処理
    
    mHandler.post(new Runnable() {
      public void run() {
        
        //ここにUIに設定する処理
        
      }
    });

  }
}).start();

当然Handler::postは1回しかダメということもなく、2度でも3度でも

mHandler = new Handler();
new Thread(new Runnable() {
  public void run() {

    //ここに別スレッドにしたい処理

    mHandler.post(new Runnable() {
      public void run() {
        //ここにUIに設定する処理
      }
    });
    mHandler.post(new Runnable() {
      public void run() {
        //ここにもUIに設定する処理
      }
    });

  }
}).start();

またThread & Handlerなら
Asyncみたいに同時に実行できない
なんてこともなく、いくつか*1同時に実行できる
AsyncTaskとの使い分けが重要。
自分的にはServiceでは主にThread & Handler使って、通常だったらAsyncTaskかな

*1:個数は未検証