Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> AsyncTask並行執行

AsyncTask並行執行

編輯:關於Android編程

使用AsyncTask時發現一個奇怪的現象,即創建多個任務的時候,他是一個一個按順序執行的,查資料之後發現: 在1.5中初始引入的時候, AsyncTask 執行( AsyncTask.execute() )起來是順序的,當同時執行多個 AsyncTask的時候,他們會按照順序一個一個執行。前面一個執行完才會執行後面一個。這樣當同時執行多個比較耗時的任務的時候 可能不是您期望的結果,具體情況就像是execute的task不會被立即執行,要等待前面的task執行完畢後才可以執行。     在android 1.6(Donut) 到 2.3.2(Gingerbread)中,AsyncTask的執行順序修改為並行執行了。如果同時執行多個任務,則這些任務會並行執行。 當任務訪問同一個資源的時候 會出現並發問題. 而在Android 3.0(Honeycomb)以後的版本中,AsyncTask又修改為了順序執行,並且新添加了一個函數 executeOnExecutor(Executor),如果您需要並行執行,則只需要調用該函數,並把參數設置為並行執行即可。 即創建一個單獨的線程池(Executors.newCachedThreadPool())。或者最簡單的方法法就是使用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR),這樣起碼不用等到前面的都結束了再執行了。executeOnExecutor(AsyncTask.SERIAL_EXECUTOR)則與execute()是一樣的。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved