日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 线程 界面,android开发教程之子线程中更新界面

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 线程 界面,android开发教程之子线程中更新界面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每個Handler對象與創建它的線程相關聯,并且每個Handler對象只能與一個線程相關聯。

Handler一般有兩種用途:1)執行計劃任務,你可以再預定的實現執行某些任務,可以模擬定時器。2)線程間通信。在Android的應用啟動時,會創建一個主線程,主線程會創建一個消息隊列來處理各種消息。當你創建子線程時,你可以再你的子線程中拿到父線程中創建的Handler對象,就可以通過該對象向父線程的消息隊列發送消息了。由于Android要求在UI線程中更新界面,因此,可以通過該方法在其它線程中更新界面。

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

在onCreate中創建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();//創建Handler

mText = (TextView) findViewById(R.id.text0);//一個TextView

}

構建Runnable對象,在runnable中更新界面,此處,我們修改了TextView的文字.此處需要說明的是,Runnable對象可以再主線程中創建,也可以再子線程中創建。我們此處是在子線程中創建的。

RunnablemRunnable0=newRunnable()

{

@Override

publicvoidrun(){

//TODOAuto-generatedmethodstub

mText.setText("ThisisUpdatefromohterthread,MouseDOWN");

}

};

創建子線程,在線程的run函數中,我們向主線程的消息隊列發送了一個runnable來更新界面。

privatevoidupdateUIByRunnable(){

newThread()

{

//Messagemsg=mHandler.obtainMessage();

publicvoidrun()

{

//mText.setText("ThisisUpdatefromohterthread,MouseDOWN");//這句將拋出異常

mHandler.post(mRunnable0);

}

}.start();

}

用Message在子線程中來更新界面

用Message更新界面與Runnable更新界面類似,只是需要修改幾個地方。

實現自己的Handler,對消息進行處理

privateclassMyHandlerextendsHandler

{

@Override

publicvoidhandleMessage(Messagemsg){

//TODOAuto-generatedmethodstub

super.handleMessage(msg);

switch(msg.what)

{

caseUPDATE://在收到消息時,對界面進行更新

mText.setText("Thisupdatebymessage");

break;

}

}

}

在新的線程中發送消息

privatevoidupdateByMessage()

{

//匿名對象

newThread()

{

publicvoidrun()

{

//mText.setText("ThisisUpdatefromohterthread,MouseDOWN");

//UPDATE是一個自己定義的整數,代表了消息ID

Messagemsg=mHandler.obtainMessage(UPDATE);

mHandler.sendMessage(msg);

}

}.start();

}

總結

以上是生活随笔為你收集整理的android 线程 界面,android开发教程之子线程中更新界面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。