I want to preform a Toast
when a background task is completed, just to let the user know that it's finished.
I've made a new class for my asyncTask but i cannot use getApplicationContext()
within this class.
I'm using task.execute(getTempFile(this), getApplicationContext());
to run the tasks. getTempFile returns a File object, and i was trying to pass the context as a Context object.
My Task class has 3 variables AsyncTask<Object, Integer, Integer>
so the context is in the second object. However, this crashes the application.
Edit
public class LocationActivity extends Activity implements LocationListener { protected void handleImage(Bitmap thumbnail){ PushDataToServer task = new PushDataToServer(); task.execute(getTempFile(this), getApplicationContext()); } } public class PushDataToServer extends AsyncTask<Object, Integer, Integer> { Context context; @Override protected Integer doInBackground(Object... params) { // TODO Auto-generated method stub this.context = (Context) params[1]; File file = (File) params[0]; return null; } protected void onPostExecute(String result) { Toast toast = Toast.makeText(this.context, "All done!", Toast.LENGTH_SHORT); toast.show(); } }
An asynchronous task is defined by 3 generic types, called Params , Progress and Result , and 4 steps, called onPreExecute , doInBackground , onProgressUpdate and onPostExecute .
Android AsyncTask going to do background operation on background thread and update on main thread. In android we cant directly touch background thread to main thread in android development. asynctask help us to make communication between background thread to main thread.
Pass a Context
object into the AsyncTask
's constructor.
Sample code:
public class MyTask extends AsyncTask<?, ? ,?> { private Context mContext; public MyTask(Context context) { mContext = context; } }
and then, when you are constructing your AsyncTask
:
MyTask task = new MyTask(this); task.execute(...);
Pass it in the constructor, not as a method parameter. Then you don't need to depend on the generic parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With