非UI线程中更新UI

每次用到线程相关,都是一查,一粘,讨厌这种感受,无法为所欲为。又看了一遍书,随手记一下,但愿下次再用到,看到这个随记,能够想起来。post

Android提供了三种方式来解决,非UI线程中更新UI。编码

  • 方式1:使其余线程尝试访问UI线程,并委托后者更新UI。
  • 方式2:在线程间进行通讯,让想更新UI的其余线程给UI线程发送消息,UI线程根据消息更新UI。
  • 方式3:使用Android提供的AsyncTask。

方式1,下面三个方法能够起到做用。线程

  • Activity.runOnUiThread(Runnable)
  • View.post(Runnable)
  • View.postDelayed(Runnable,long)

这样。非UI线程就把更新UI的工做经过post()方法委托给了UI线程,并让后者更新IU。可是这种方式在耗时操做很复杂时,难以编码实现。it

未完。方法