-
第一種:
new Handler(context.getMainLooper()).post(new Runnable() { @Override public void run() { // 在這裏執行你要想的操作 比如直接在這裏更新ui或者調用回調在 在回調中更新ui } });
context是你傳過來的context對象
第二種:// 如果當前線程是UI線程,那麼行動是立即執行。如果當前線程不是UI線程,操作是發佈到事件隊列的UI線程 // 因爲runOnUiThread是Activity中的方法,Context是它的父類,所以要轉換成Activity對象才能使用 ((Activity) context).runOnUiThread(new Runnable() { @Override public void run() { // 在這裏執行你要想的操作 比如直接在這裏更新ui或者調用回調在 在回調中更新ui } });
第三種是使用Handler的方法,往Handler中發送一個消息,然後當Handler接收到你發送過來的消息,再在Handler執行相應的操作
這是接收消息執行的代碼:private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: button1.setText("點擊安裝"); down = 1; break; case 2: down = 2; button1.setText("打開"); break; } } };
// 往handler發送一條消息 更改button的text屬性 Message message = handler.obtainMessage(); message.what = 1; handler.sendMessage(message);
-
Android 在子線程中更新UI的3種方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.