每次用到线程相关,都是一查,一粘,讨厌这种感觉,没法随心所欲。又看了一遍书,随手记一下,希望下次再用到,看到这个随记,可以想起来。
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。但是这种方式在耗时操作很复杂时,难以编码实现。
未完。