最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android開發(fā)教程之子線程中更新界面

 更新時間:2014年01月23日 15:55:14   作者:  
本文主要介紹Android的Handler的使用方法。Handler可以發(fā)送Messsage和Runnable對象到與其相關(guān)聯(lián)的線程的消息隊列

每個Handler對象與創(chuàng)建它的線程相關(guān)聯(lián),并且每個Handler對象只能與一個線程相關(guān)聯(lián)。
Handler一般有兩種用途:1)執(zhí)行計劃任務(wù),你可以再預定的實現(xiàn)執(zhí)行某些任務(wù),可以模擬定時器。2)線程間通信。在Android的應(yīng)用啟動時,會創(chuàng)建一個主線程,主線程會創(chuàng)建一個消息隊列來處理各種消息。當你創(chuàng)建子線程時,你可以再你的子線程中拿到父線程中創(chuàng)建的Handler對象,就可以通過該對象向父線程的消息隊列發(fā)送消息了。由于Android要求在UI線程中更新界面,因此,可以通過該方法在其它線程中更新界面。

通過Runnable在子線程中更新界面的例子

在onCreate中創(chuàng)建Handler

復制代碼 代碼如下:

public class HandlerTestApp extends Activity {
Handler mHandler;
TextView mText;
/** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   mHandler = new Handler();//創(chuàng)建Handler
   mText = (TextView) findViewById(R.id.text0);//一個TextView
   }

構(gòu)建Runnable對象,在runnable中更新界面,此處,我們修改了TextView的文字.此處需要說明的是,Runnable對象可以再主線程中創(chuàng)建,也可以再子線程中創(chuàng)建。我們此處是在子線程中創(chuàng)建的。
復制代碼 代碼如下:

RunnablemRunnable0=newRunnable()
{
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
mText.setText("ThisisUpdatefromohterthread,MouseDOWN");
}
};

創(chuàng)建子線程,在線程的run函數(shù)中,我們向主線程的消息隊列發(fā)送了一個runnable來更新界面。

復制代碼 代碼如下:

privatevoidupdateUIByRunnable(){
newThread()
{
//Messagemsg=mHandler.obtainMessage();
publicvoidrun()
{
//mText.setText("ThisisUpdatefromohterthread,MouseDOWN");//這句將拋出異常
mHandler.post(mRunnable0);
}
}.start();
}

用Message在子線程中來更新界面
用Message更新界面與Runnable更新界面類似,只是需要修改幾個地方。
實現(xiàn)自己的Handler,對消息進行處理

復制代碼 代碼如下:

privateclassMyHandlerextendsHandler
{
@Override
publicvoidhandleMessage(Messagemsg){
//TODOAuto-generatedmethodstub
super.handleMessage(msg);
switch(msg.what)
{
caseUPDATE://在收到消息時,對界面進行更新
mText.setText("Thisupdatebymessage");
break;
}
}
}

在新的線程中發(fā)送消息

復制代碼 代碼如下:

privatevoidupdateByMessage()
{
//匿名對象
newThread()
{
publicvoidrun()
{
//mText.setText("ThisisUpdatefromohterthread,MouseDOWN");
//UPDATE是一個自己定義的整數(shù),代表了消息ID
Messagemsg=mHandler.obtainMessage(UPDATE);
mHandler.sendMessage(msg);
}
}.start();
}

相關(guān)文章

  • 解決android studio 打開java文件 內(nèi)容全變了的問題

    解決android studio 打開java文件 內(nèi)容全變了的問題

    這篇文章主要介紹了解決android studio 打開java文件 內(nèi)容全變了的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android Studio實現(xiàn)發(fā)短信功能

    Android Studio實現(xiàn)發(fā)短信功能

    這篇文章主要介紹了Android Studio實現(xiàn)發(fā)短信功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • Android 軟引用和弱引用詳解及實例代碼

    Android 軟引用和弱引用詳解及實例代碼

    這篇文章主要介紹了Android 軟引用和弱引用詳解的相關(guān)資料,并附實現(xiàn)實例代碼,需要的朋友可以參考下
    2016-11-11
  • Android自定義View用切圖顯示字符串

    Android自定義View用切圖顯示字符串

    這篇文章主要為大家詳細介紹了Android自定義View用切圖顯示字符串,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • Android選擇圖片或視頻進行循環(huán)播放

    Android選擇圖片或視頻進行循環(huán)播放

    這篇文章主要為大家詳細介紹了Android選擇圖片或視頻進行循環(huán)播放,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Eclipse安裝ADT插件速度慢的解決方法

    Eclipse安裝ADT插件速度慢的解決方法

    這篇文章主要介紹了Eclipse安裝ADT插件速度慢的解決方法,涉及基于Apache的反向代理與hosts文件的設(shè)置方法,需要的朋友可以參考下
    2015-12-12
  • android push推送相關(guān)基本問答總結(jié)

    android push推送相關(guān)基本問答總結(jié)

    現(xiàn)在網(wǎng)上一大堆的關(guān)于推送方面的實現(xiàn)原理:1.通過pull(拉),也就是通過客戶端主動定時輪詢服務(wù)器請求數(shù)據(jù)。2.通過push(推),服務(wù)器通過一個長連接主動推送消息到客戶端。這兩個方式都可以實現(xiàn)推送功能。pull這個方式?jīng)]什么問題好理解。
    2015-05-05
  • AndroidStudio項目制作倒計時模塊的方法

    AndroidStudio項目制作倒計時模塊的方法

    本篇文章主要介紹了AndroidStudio項目制作倒計時模塊的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 如何通過Android Stduio來編寫一個完整的天氣預報APP

    如何通過Android Stduio來編寫一個完整的天氣預報APP

    這篇文章主要介紹了通過Android Stduio來編寫一個天氣預報APP,具體的實現(xiàn)是通過調(diào)用天氣預報接口來獲得天氣數(shù)據(jù),再將查詢的天氣信息存儲在SQLiteDatabase中,界面則用LIstView和GridView來搭建
    2021-08-08
  • Android SDK Manager解決更新時的問題 :Failed to fetch URL...

    Android SDK Manager解決更新時的問題 :Failed to fetch URL...

    本文主要介紹解決安裝使用SDK Manager更新時的問題:Failed to fetch URL...,這里提供了詳細的資料及解決問題辦法,有需要的小伙伴可以參考下
    2016-09-09

最新評論

孝义市| 阿瓦提县| 柳林县| 广河县| 苏尼特左旗| 吉木萨尔县| 浦北县| 宝清县| 大兴区| 永州市| 苏尼特左旗| 比如县| 化隆| 南召县| 西贡区| 长白| 淳安县| 克东县| 荥阳市| 泰兴市| 宁远县| 临海市| 邹城市| 长顺县| 宝鸡市| 汉沽区| 枣强县| 大兴区| 雅江县| 宁南县| 沐川县| 三明市| 塘沽区| 盐源县| 桦川县| 乳源| 锦屏县| 永嘉县| 苗栗县| 无棣县| 临猗县|