visited 13 states (5.77%)
Create your own visited map of The World or Triposo world travel guide for Android

2015-01-22

Android中以timer / sleep / delay / 更新 UI 的方法

主要是希望達成Sleep / Delay 的功並讓UI可更新,Android 不能套用 Java or C 的 sleep 方法,列出幾種可以取代的方法

以下幾個方法都可以達到 "Delay" 的效果 (A1 -> (wait 10s) -> A2 -> (wait 10s) -> A3...)

  1. Thread + sleep (Thread.sleep(xxx))
  2. Handler (handler.postDelayed(Runnable, 2000);) => Call back 到 Runnable 的 run()
  3. Timer (timer.schedule(TimerTask, 10000);) => Call back 到 TimerTask 的 run()
  4. Thread + Handler
  5. Timer + Handler
  6. SystemClock.sleep(2000);
  7. asynctask
  8. Handlerthread
  9. IntentService

若要更新 UI,可以在 UI/Main thread 或者 other thread:
  1. Thread + Handler
  2. Timer + Handler
  3. Timer: postInvalidate (update a view when you're not in the current UI thread.) => http://blog.csdn.net/lixinso/archive/2009/06/23/4290432.aspx
  4. Activity.runOnUiThread(Runnable) => http://lak4cyut.blogspot.com/2011/03/android-tip-activityrunonuithread.html
  5. View.post(Runnable)
  6. View.postDelayed(Runnable, long)
Handler / Timer 簡單的應用區分:

Handler / Timer 使用的時機:
  1. 當 Delay or Sleep 用
  2. 類似迴圈的應用
  3. 定期觸發的定期行為
只要講到 Timer or Handler,一定會跟幾個名詞綁在一起: Thread / Handler / Timer / Timertask / Message / Looper / AsyncTask

這些也是同標籤文章 :

沒有留言: