android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
生活随笔
收集整理的這篇文章主要介紹了
android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 按照下面的理解就是handler與ui線程有一定的關聯可以因為更新界面只能在主線程中所有更新界面的地方可以在接受消息的handleMessage那里還有更新界面可以在handler.port(new Runnable))在自定義的線程中然后執行post方法通知主線程去更新這個界面。
? ??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); } }; ?當一個線程運行完畢后可以發送通知給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,因為此時的 Runnable 是運行在UI所在的主線程中。
總結
以上是生活随笔為你收集整理的android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面包车搬家要注意什么?
- 下一篇: android 简单的音乐播放器