Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android技術基礎 >> 第79章、多線程(從零開始學Android)

第79章、多線程(從零開始學Android)

編輯:Android技術基礎

多線程是很多人最為頭疼的部人,但在Android裡,你又是不是不面對的部分。而實際上,你如果願意花點功夫,多線程也沒有什麼了不起,懂了,也就很簡單了。

1、為什麼要用多線程?

(1)提高用戶體驗;
(2)避免應用程序未響應(Application is not responding)
   移動開發的“三不”原則:不讓用戶等、不讓用戶想、不要用戶煩。響應慢了用戶需要等,等的次數多了就會煩,你的應用離被卸載不遠了。
即使你的程序中某個事件響應不超過5秒鐘,人眼可以分辨的時間是0.1秒,小於0.1秒基本感覺不出來,超過0.2秒用戶就能感覺到有點兒卡了,俗稱打嗝現象,2秒以上就很慢了,用戶體驗會很差。有同學說我可以用進度條啊,但你的程序中不能到處都是進度條,否則那個圈圈會把用戶轉暈的,好像在對用戶說,畫個圈圈煩死你……
比如某些應用,它要顯示很多圖片,還好它是異步的,不過在圖片加載完成前每個圖片的位置上都有一個圈圈,讓人看了很煩。你可以變通一下,圖片加載成功之前顯示一個默認的圖片,加載成功後再刷新一下即可,何必弄那麼多進度條呢?

2、處理的基本原則:
所有可能耗時的操作都放到其他線程去處理。
Android中的Main線程的事件處理不能太耗時,否則後續的事件無法在5秒內得到響應,就會彈出ANR對話框。那麼哪些方法會在 Main線程執行呢?
(1)Activity的生命周期方法,例如:onCreate()、onStart()、onResume()等
(2)事件處理方法,例如onClick()、onItemClick()等
通常Android基類中以on開頭的方法是在Main線程被回調的。
提高應用的響應性,可以從這兩方面入手。
一般來說,Activity的onCreate()、onStart()、onResume()方法的執行時間決定了你的應用首頁打開的時間,這裡要盡量把不必要的操作放到其他線程去處理,如果仍然很耗時,可以使用SplashScreen。使用SplashScreen最好用動態的,這樣用戶知道你的應用沒有死掉。

當用戶與你的應用交互時,事件處理方法的執行快慢決定了應用的響應性是否良好,一般分為同步和異步兩種情況:

(1)同步,需要等待返回結果。例如用戶點擊了注冊按鈕,需要等待服務端返回結果,那麼需要有一個進度條來提示用戶你的程序正在運行沒有死掉。一般與服務端交互的都要有進度條,例如系統自帶的浏覽器,URL跳轉時會有進度條。

(2)異步,不需要等待返回結果。例如微博中的收藏功能,點擊完收藏按鈕後是否成功執行完成後告訴我就行了,我不想等它,這裡最好實現為異步的。

 

3. 如何實現線程間通訊?
比較流行的方法有兩種:Handler、AsyncTask。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved