深入淺出Android訊息系統之一

littletigerbj發表於2011-04-22

深入淺出Android訊息系統之一

1.VC6.0 MFC訊息機制

通過PreTranslateMessage處理訊息;

2.Activity內嵌的訊息處理機制有:
a.onKeyDown

b.各式各樣的lister,onKeyDownListener

3.有哪些工作必須通過訊息分發處理機制來完成呢

a.事件的定時觸發;

b.非同步的迴圈事件的處理;

c.高耗時的工作;

4.Handler處理哪個執行緒下的訊息:

預設情況下,Handler接受的是當前執行緒下的訊息迴圈例項

5.一個訊息迴圈可以被多個物件分發與處理

一個訊息迴圈可以被當前執行緒中的多個物件來分發,來處理(在UI執行緒中,系統已經有一個Activity來處理了,你可以再起若干個Handler來處理)。

6. AndroidCPU分配的最小單元:

執行緒

7.HandlerThread的關係

Handler一般是在某個執行緒裡建立的,因而HandlerThread就是相互繫結的,一一對應的;

8.RunnableThread之間的關係:

Runnable是一個介面,ThreadRunnable的子類。所以說,他倆都算一個執行緒;

9.Thread(HandlerThread)的作用是什麼?

HandlerThread顧名思義就是可以處理訊息迴圈的執行緒,他是一個擁有Looper的執行緒,可以處理訊息迴圈。

10.Handler是在UI執行緒之內執行的,並沒有新建執行緒:

UI執行緒(主執行緒)中,有如下程式碼:

mHandler=new Handler();

 

mHandler.post(new Runnable(){

void run(){

       //執行程式碼

     }

 

});

這個執行緒其實是在UI執行緒之內執行的,並沒有新建執行緒。

11.常見的新建執行緒的方法是

方法一:

Thread thread = new Thread();

thread.start();

方法二:

HandlerThread thread = new HandlerThread(“string”);

thread.start();

12.主執行緒就是UI執行緒;

13.UI執行緒何時建立:

當應用程式啟動時,Android首先會開啟一個主執行緒 (也就是UI執行緒)

14.主執行緒的作用:

主執行緒為管理介面中的UI控制元件,進行事件分發, 比如說, 你要是點選一個Button,Android會分發事件到Button上,來響應你的操作。

15.如果把耗時的工作,放在主執行緒中處理,有什麼後果?

如果放在主執行緒中的話,介面會出現假死現象, 如果5秒鐘還沒有完成的話,會收到Android系統的一個錯誤提示   強制關閉“.

16.有哪些是耗時的工作:

a.聯網讀取資料;

b.讀取本地的一個大檔案;

c.硬體初始化;

17.如果遇到耗時的工作,如何處理?

需要把這些耗時的操作放在一個子執行緒中

18.更新UI只能在主執行緒中更新;

Notes:主執行緒就是UI執行緒;

19. Handler的作用:

Handler的作用:

1.接受子執行緒傳過來的Message物件(裡面包含資料)

Notes:子執行緒用sedMessage()方法傳遞;

2.把這些訊息放入主執行緒佇列中,

3.配合主執行緒進行更新UI。;

20.HandlerThread如何傳遞資料:

Handler與子執行緒可以通過Message物件來傳遞資料。


相關文章