Android App Development
iOS App Development
Flutter App Development
Cross Platform App Development
Hire on-demand project developers and turn your idea into working reality.
Big thanks to Webkul and his team for helping get Opencart 3.0.3.7 release ready!
Deniel Kerr
Founder. Opencart
Top Partners
AsyncTask is an abstract class provided by Android which helps us to use the UI thread properly. This class allows us to perform long/background operations and show its result on the UI thread without having to manipulate threads.
The AsyncTask Android class lets us sort of bind background tasks to the UI thread. So using this class, you can perform background operations and then publish the results to the UI thread that updates the UI components. This way you won’t have to deal with threads, handlers, runnables, etc. directly yourself. It’s sort of a helper class around Thread and Handler .
Thread
Handler
Well, any long running operation that may block the main thread and make the app unresponsive could be done via AsyncTask. Like downloading multiple files, or making HTTP requests to your server, decoding images, etc. According to the
According to the documentation, AsyncTask should ideally be used for short background operations that lasts for a few seconds at most. For longer tasks, the Executor framework from the java.util.concurrent package should be used that contains classes/interfaces likeExecutor, ThreadPoolExecutor and FutureTask.
java.util.concurrent
Executor
ThreadPoolExecutor
FutureTask
In order to use AsyncTask, you’ll have to subclass it. This is the simplest form of implementation of an AsyncTask:
To execute the task you’ll have to instantiate it and call execute():
execute():
The execute() method can be called only once per AsyncTask instance, that means AsyncTask can be executed only once – just like a Thread.
execute()
The example that we just saw is the most basic form of an AsyncTask implementation. Let’s now see all the important methods that you can override in a full-blown implementation:
Note: As you can see all callbacks except the doInBackground()method are executed on the UI thread.
doInBackground()
It is very important to understand the three AsyncTask generic types:
doInbackground()
onProgressUpdate()
onPostExecute()
The 3 dots argument is referred to as varargs (arbitrary number of arguments).
An AsyncTask can be in one of the following states:
onCancelled()
execute(Runnable): The AsyncTask class has another version of its execute() method which is static and accepts a Runnable. It is just a convenience version of the other execute() (that we’ve seen before) for use with simple Runnable objects.
AsyncTask instances can only be used one time. Instead, just call your task like
AsyncTask
There are a few threading rules that must be followed for this class to work properly:
Your email address will not be published. Required fields are marked*
Name*
Email*
Save my name email and website in this browser for the next time I comment.
Be the first to comment.
We use cookies to personalize your experience. By continuing to visit this website you agree to our use of cookies. Learn more about privacy policy
Name
Email
Subject
Enquiry or Requirement
If you have more details or questions, you can reply to the received confirmation email.