android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
生活随笔
收集整理的這篇文章主要介紹了
android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? 按照下面的理解就是handler與ui線程有一定的關(guān)聯(lián)可以因?yàn)楦陆缑嬷荒茉谥骶€程中所有更新界面的地方可以在接受消息的handleMessage那里還有更新界面可以在handler.port(new Runnable))在自定義的線程中然后執(zhí)行post方法通知主線程去更新這個(gè)界面。
? ??Android?線程是單線程的。 所以更新UI要用到Handler:
private Handler splashHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case OVER: progressDialog.dismiss(); break; default: break; } super.handleMessage(msg); } }; ?當(dāng)一個(gè)線程運(yùn)行完畢后可以發(fā)送通知給Hanler,通知主線程更新UI :new Thread() {public void run() { initList(); Message m = splashHandler.obtainMessage(OVER); splashHandler.sendMessage(m); splashHandler.post(r); splashHandler.postDelayed(r, delayMillis); splashHandler.postAtTime(r, uptimeMillis);}}.start(); 也可以直接使用:
splashHandler.post(new Runnable(){ public void run() { progressDialog.dismiss(); } }); //splashHandler.postDelayed(r, delayMillis); //splashHandler.postAtTime(r, uptimeMillis) 直接在Runnable 中更新UI,因?yàn)榇藭r(shí)的 Runnable 是運(yùn)行在UI所在的主線程中。
總結(jié)
以上是生活随笔為你收集整理的android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面包车搬家要注意什么?
- 下一篇: 帕萨特价格多少 了解帕萨特的市场行情和价