二、從 activitythread#main() 到 activity#oncreate()
handler 訊息機制
handler 訊息機制除了 handler 本身外,還包含:looper、messagequeue、message,訊息機制需要有訊息佇列、訊息迴圈、訊息處理
如下:handler:傳送訊息(message)到訊息佇列(messagequeue)
looper:遍歷訊息佇列(messagequeue)中的訊息(message),然後分發給對應的 handler(誰傳送的訊息誰處理)
messagequeue:訊息佇列,儲存訊息
message:訊息本身
handler 訊息機制工作流程簡圖:
在子執行緒中使用 handler 的栗子
class
mythread
extends
thread};
looper.
loop();}}
使用 handler 之前,需要呼叫 looper#prepare()?
public
static
void
loop()
...}
訊息要經過 looper#loop() 方法的遍歷,然後才能分發給對應的 handler 去處理,在 loop() 方法的最開始對 loop 物件是否為空進行了判斷
loop#mylooper():
// sthreadlocal.get() will return null unless you've called prepare().
// 根據泛型可知,sthreadlocal 中儲存的是 looper
// 根據原始碼注釋可知,直到呼叫了 prepare() 方法,sthreadlocal.get() 返回值才不為空
static final threadlocal sthreadlocal =
newthreadlocal
();public
static @nullable looper mylooper()
loop#prepare():
public
static
void
prepare()
private
static
void
prepare
(boolean quitallowed)
// 建立 looper 物件例項,儲存到 sthreadlocal 變數中
第九周總結
這個作業屬於那個課程 c語言程式設計ii 這個作業要求在 我在這個課程的目標是 進一步掌握結構的運用 這個作業在那個具體方面幫助我實現目標 更加熟悉結構的基本流程與陣列的使用 參考文獻 c語言書與網上的查詢 本題要求實現乙個根據學生成績設定其等級,並統計不及格人數的簡單函式。int set grad...
第九大周總結
第九大周總結又開始製作了,這說明又過去了乙個大周。按照慣例,先來做一下常規的瞎bb,這個大周沒什麼稀奇事,要說有,也就只是沒考試 天大的好訊息 然後主講了搜尋的dfs和bfs,以及動態規劃的入門 說好的入門呢,根本就入不了門好嗎 然後來看看這個大周找到的一些bug 1.打字,這都已經是老生常談的事情...
第九周總結 助教
第九周作業助教總結 一 同學們本週學習的情況分析 這周題目不多,難度不打,導致問問題的同學變少了,但是我看成績單的時候還是有幾個同學沒做,不知道是什麼原因,但大部分的同學還是完成的很好的,希望那些缺考的同學能端正學習態度,把作業寫完。那些完成比較好的同學能繼續堅持。加油 包括製作歷次作業的千帆競發圖...