package com.example.test0207_handler;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import android.view.menu;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.textview;
public class mainactivity extends activity
//在mainathread執行緒中接收資料,從而修改textview的值
class myhandler extends handler
}//生成執行緒物件,讓networkthread執行緒啟動
class buttonlistener implements onclicklistener
}//在worker thread執行緒中傳送資料
class networkthread extends thread catch (interruptedexception e)
//變數s的值,模擬從網路當中獲取的資料
string s = "從網路中獲取的資料" ;
; //這種做法是錯誤的,只有在mainthread中才能操作ui
//開始傳送訊息
message msg = handler.obtainmessage() ;
msg.obj = s ;
handler.sendmessage(msg) ;//sendmessage()方法,在主線程或者worker thread執行緒中傳送,都是可以的,都可以被取到
}}
@override
public boolean oncreateoptionsmenu(menu menu)
}
Android之在子執行緒更新UI 一
方法一 用handler 1 主線程中定義handler handler mhandler new handler 2 子執行緒發訊息,通知handler完成ui更新 private void updateweather start 方法一的handler物件必須定義在主線程中,如果是多個類直接互相...
子執行緒更新UI
一般在winform c s程式中經常會在子執行緒中更新控制項的情況,桌面程式ui執行緒是主線程,當試圖從子執行緒直接修改控制項屬性時會出現 從不是建立控制項的執行緒訪問它 的異常提示。跨執行緒更新ui控制項的常用方法有兩種 1.使用控制項自身的invoke begininvoke方法 2.使用sy...
Android 在子執行緒中更新主線程UI
最近發現以前在eclipse中使用的runonuithread在studio中不能使了,所以又找了幾個更新ui的方法 第一種方法 new handler context.getmainlooper post new runnable 第二種方法 如果當前執行緒是ui執行緒,那麼行動是立即執行。如果當...