編輯:關於Android編程
AsyncTask在android4.0之後android采用線程池來實現,最多開5個線程,所以幾個AsyncTask執行的時候順序是隨機的,
如果5個AsyncTask順序執行之後,又有一個AsyncTask,那最後一個會被掛起,當5個AsyncTask有一個被執行完以後最後一個會被插入執行
public class TestActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); new fetchServerVersionAndSupportOsHttpTasker().execute(); new fetchServerVersionAndSupportOsHttpTasker1().execute(); new fetchServerVersionAndSupportOsHttpTaske2().execute(); } public class fetchServerVersionAndSupportOsHttpTasker extends AsyncTask執行結果:
10-16 14:03:38.872: I/System.out(23132): =============third doInBackground 10-16 14:03:38.872: I/System.out(23132): =============second doInBackground 10-16 14:03:38.872: I/System.out(23132): =============first doInBackground 10-16 14:03:38.892: I/System.out(23132): ===============third postexecute 10-16 14:03:38.922: I/System.out(23132): ===============second postexecute 10-16 14:03:38.922: I/System.out(23132): ===============first postexecute
堆棧就是這樣一種數據結構。它是在內存中開辟一個存儲區域,數據一個一個順序地存入(也就是“壓入——push”)這個區域之中。有一個地址指針總指向最後一個壓入堆棧的數據所在的數據單元,存放這個地址指針的寄存器就叫做堆棧指示器。開始放入數據的單元叫做“棧底”。數據一個一個地存入,這個過程叫做“壓棧”。在壓棧的過程中,每有一個數據壓入堆棧,就放在和前一個單元相連的後面一個單元中,堆棧指示器中的地址自動加1。讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減 1。這個過程叫做“彈出pop”。如此就實現了後進先出的原則。
TASK1包含三個activity分別是:p,q,r;啟動順序為p-->q-->r TASK2包含兩個activity分別是:a,b;啟動順序為a-->b; TASK1首先啟動p,那麼這個p就是執行這個任務的根activity,任務也是定義在這個activity下的。通過屬性Manifest文件中的activity屬性中的taskAffinity來定義。 (1)此時p啟動後就被壓入堆棧,因為此時堆棧中只有這一個activity,所以p處於棧底,也處於棧頂。此時用戶能夠看到的就是p界面。 (2)p啟動q後,q入棧。此時棧頂為q。q呈現的界面將p覆蓋,p進入後台運行(此時是activity生命周期的pause狀態)或者進入後台但不運行(此時是activity生命周期的stop狀態)。 (3)q啟動r後,r入棧。此時棧頂為r。r呈現的界面將q覆蓋,q進入後台運行。 (4)按back鍵後就是調用finish函數結束r (activity)的生命。此時r出棧,r的生命周期結束。 (5)繼續back鍵,結束q的生命,此時q出棧。 (6)繼續back鍵,結束p的生命,此時p出棧。 (7)此時棧內所有activity都已出棧,所以就會顯示HOME屏幕界面.
和大家一起分享一下學習經驗,如何實現Android文件下載進度顯示功能,希望對廣大初學者有幫助。先上效果圖: 上方的藍色進度條,會根據文件下載量的百分比進行加載,中部的
(1)布局文件 (2)在values中新建xml文件 fill_pare
Service翻譯成中文是服務,熟悉Windows 系統的同學一定很熟悉了。Android裡的Service跟Windows裡的Service功能差不多,就是一個不可見的
實現一個播放器裡的全屏播放功能視頻播放器的核心是:VideoView使用AndroidStudio設置Activity的全橫屏會出現閃退解決方法:把運行類的繼承改成Act