原文:
1,通過handler機制.
private void one() }};
new thread() catch (interruptedexception e)
}message message=new message();
message.what=123;
message.obj="通過handler機制";
handler.sendmessage(message);
}}.run();
}主線程中定義handler,子執行緒發訊息,通知handler完成ui更新,handler物件必須定義在主線程中,如果是多個類直接互相呼叫,就不是很方便,需要傳遞content物件或通過介面呼叫。另外handler機制與activity生命週期不一致的原因,容易導致記憶體洩漏,不推薦使用。
2,runonuithread方法
private void two() catch (interruptedexception e)
}runonuithread(new runnable()
});}
}.run();
}用activity物件的runonuithread方法更新,在子執行緒中通過runonuithread()方法更新ui,強烈推薦使用。
3,view.post(runnable r) 、
private void three() catch (interruptedexception e)
}tv.post(new runnable()
});}
}.run();
}這種方法更簡單,但需要傳遞要更新的view過去,推薦使用
4,asynctask
private void four()
private class myasynctask extends asynctask catch (interruptedexception e)
}return objects[0].tostring();
}@override
protected void onpostexecute(object o)
}
Android通訊 Android執行緒間通訊
android程式中,執行緒分為主線程 ui thread 和工作執行緒 work thread 我們要遵循單執行緒模型原則 安卓ui的操作執行緒不安全,安卓ui的操作必須在主線程進行。1 多執行緒任務開發可以通過以下幾個方式實現 handler asynctask。詳見 2 如果子執行緒的資料想通...
android 執行緒間的通訊
在android,執行緒分為有訊息迴圈的執行緒和沒有訊息迴圈的執行緒,有訊息迴圈的執行緒一般都會有乙個looper,這個是android 的新概念。我們的主線程 ui執行緒 就是乙個訊息迴圈的執行緒。針對這種訊息迴圈的機制,我們引入乙個新的機制handler,我們有訊息迴圈,就要往訊息迴圈裡面傳送相...
Android中線程間的通訊
handler類 一 概述 例如 handler在工作執行緒中傳送訊息,該訊息傳送至訊息佇列中,等待處理。在主線程中handler從訊息佇列中接 收訊息,並根據訊息中的資訊決定如何更新ui。每個handler例項都會繫結到建立它的執行緒中。handler可以傳送訊息或runnable值某個執行緒的訊...