Skip to content Skip to sidebar Skip to footer

Android Make A New Async Task Have Priority Over Others In Background Or Dropbox Core Api Issue

I am loading multiple photos from Dropbox using the Core API in Android and when making requests they are serialized. I am getting the thumbnails to show in a grid view and when th

Solution 1:

This is due to how async tasks actually work. They don't run in parallel on 3.0+ (they used to until 3.0), because too many newbie developers weren't able to program in parallel without errors, so Google decided to change it. Instead, async tasks run on a single thread in FIFO order.

You can override this however. Instead of calling asynctask.execute(), call asynctask.executeOnExecutor() and use a THREAD_POOL_EXECUTOR. This will execute it in parallel on its own thread. I believe there's a thread cap, but it will at least make several run in parallel.

If the thread cap becomes an issue, you can always drop down to using threads instead of using async tasks. You need to do some work yourself to do an onPostExecute, but it isn't that hard. And if you're creeating your own threads you can make up to the OS limit.

Post a Comment for "Android Make A New Async Task Have Priority Over Others In Background Or Dropbox Core Api Issue"