第一種: handler直接post
new handler(mcontext.getmainlooper()).post(new runnable()
第二種:runonuithread(需要可以拿到activity)
// 如果當前執行緒是ui執行緒,那麼行動是立即執行。如果當前執行緒不是ui執行緒,操作是發布到事件佇列的ui執行緒
// 因為runonuithread是activity中的方法,context是它的父類,所以要轉換成activity物件才能使用
((activity) context).runonuithread(new runnable()
第三種:handler sendmessage
第三種是使用handler的方法,往handler中傳送乙個訊息,然後當handler接收到你傳送過來的訊息,再在handler執行相應的操作。
這是接收訊息執行的**:
private handler handler = new handler() {
@override
public void handlemessage(message msg) {
super.handlemessage(msg);
switch (msg.what) {
case activenumber:
maintainprotos.activenumber activenumber = (maintainprotos.activenumber) msg.obj;
break;
這是傳送訊息的**:
message msg = message.obtain();
msg.what = activenumber;
msg.obj = activenumber;
mhandler.sendmessage(msg);
android 子執行緒更新UI例項
package com.example.test0207 handler import android.os.bundle import android.os.handler import android.os.message import android.view.menu import andr...
Android 在子執行緒中更新主線程UI
最近發現以前在eclipse中使用的runonuithread在studio中不能使了,所以又找了幾個更新ui的方法 第一種方法 new handler context.getmainlooper post new runnable 第二種方法 如果當前執行緒是ui執行緒,那麼行動是立即執行。如果當...
Android之在子執行緒更新UI 一
方法一 用handler 1 主線程中定義handler handler mhandler new handler 2 子執行緒發訊息,通知handler完成ui更新 private void updateweather start 方法一的handler物件必須定義在主線程中,如果是多個類直接互相...