Executing AsyncTasks
Having implemented doInBackground
and onPostExecute
, we want to get our task running. There are two methods we can use for this, each offering different levels of control over the degree of concurrency with which our tasks are executed. Let's look at the simpler of the two methods first:
public final AsyncTask<Params, Progress, Result> execute(Params... params)
The return type is the type of our AsyncTask
subclass, which is simply for convenience so that we can use method chaining to instantiate and start a task in a single line and still record a reference to the instance:
class MyTask implements AsyncTask<String,Void,String>{ ... } MyTask task = new MyTask().execute("hello");
The Params... params
argument is the same Params type we used in our class declaration, because the values we supply to the execute method are later passed to our doInBackground
method as its Params... params arguments. Notice that it is a varargs (variable number of parameters...