Android四大元件<activity>, <service>, <receiver>, <provider>
可以利用android:process來使其跑在同一個Process

當App啟動時系統會創建一個Thread, 叫做main thread,
平常總是在執行, 通常在是處理元件的互動, 所以也叫做UI thread

平常使用元件時不並會去創造額外的Thread, 都是在UI thread執行
而監聽系統則是利用callbacks方式來處理, 像是按下鍵盤

當畫面超過5秒沒反應時就會出現ANR(application not responding)
所以在UI Thread使用時要注意
a. 不要阻塞UI thread
b. 不在UI thread外的地方使用UI元件

非UI thread的Thread則稱為background或worker" threads
他不能直接存取UI Thread, 但是可以透過
Activity.runOnUiThread(Runnable)
View.post(Runnable)
View.postDelayed(Runnable, long)
來解決

AsyncTask 也是一個很好的工具來處理異步任務

Thread之間溝通可透過IPC(interprocess communication)
像是bindService()

 

1. 官網https://developer.android.com/guide/components/processes-and-threads.html

01.png  

arrow
arrow
    文章標籤
    Android Thread 簡介
    全站熱搜

    RX1226 發表在 痞客邦 留言(0) 人氣()