我一直以為只要使用了 AsyncTask 的 execute,就相當於開一個 thread 去做事情。後來在網路上看到一篇文章才知道原來新版的 Android 有改過。在 API level 11 以上,AsyncTask 預設是循序執行的,因此要能平行執行的話,原本使用 AsyncTask 的方法要重新改寫,如以下所示:
參考資料
1. Android AsyncTask behavior changes you should know
2. Android AsyncTask - executeOnExecutor
---
AsyncTask task = new YourAsyncTask(); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else { task.execute(); }
參考資料
1. Android AsyncTask behavior changes you should know
2. Android AsyncTask - executeOnExecutor
---
留言
張貼留言