在Android中,四大組件運行在主線程中,在主線程中做耗時操作會導致程序出現卡頓甚至出現ANR異常,一個基本常識就是將耗時操作放到子線程中去處理,然後通過Handler回調到主線程。
但是有三點還需要注意:
1 因爲四大組件運行在一個主線程中,那麼若果當前界面在顯示的時候,後臺的activity仍有處理邏輯再運行的話,仍然會造成當前界面的卡頓;
2 通過Handler回調到主線程只是避免程序出現ANR的第一步,我們必須要注意handler中邏輯處理的耗時,如果我們將很多消息都扔給了handler,那麼也會給主線程造成壓力,導致程序運行卡頓;
3 四大組件、Handler都是在一個線程中,那麼主線程在同一時刻不可能發送兩個廣播,換句話說就是若果能夠保證所有的廣播都是在主線程中發送,那麼廣播內部其實不需要加上對異步操作的處理。
錯誤之處,還請指正!