猛禽洛的程式筆記庫

[Android] 定時重複執行Handler+Runnable

很多時候需要重複性的做某些事情,可以用Handler+Runnable的方式很簡單完成。

1.建立Handler與Runnable物件

private Handler updateHandler = new Handler();
//假如跳出執行緒Looper問題,可以改成
private Handler updateHandler = new Handler(Looper.getMainLooper());
private Runnable updateRunnable = null;

2.建立Runnable的程式碼區塊

private void checkLocation(){
  updateRunnable = new Runnable() {
    @Override
    public void run() {
      // TODO Auto-generated method stub
      //要重複做的事情
      if(currentLocation != null) {
        Toast.makeText(getApplication(),"目前位置:" + currentLocation.getLongitude() + " , " + currentLocation.getLatitude(), Toast.LENGTH_LONG).show();
      }
      //5秒後執行
      updateHandler.postDelayed(this, 5000);
    }
  };
}

3.啟動定時器

updateHandler.postDelayed(updateRunnable, 5000);//每5秒執行一次runnable.

4.不用時記得關閉

updateHandler.removeCallbacks(updateRunnable);

-END-

 

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *