I'm using picasso to load an image as a background for my activity, I want to use an AsyncTask, while the image is loading, when done the progress bar dismisses to give better appearance to my application,
Here is my code :
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setMessage("Chargement...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
Picasso.with(MainActivity.this).load("http://tv2.orangeadd.com/mediacenter-data/ofc__bg_home.jpg").into(background,new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
mProgressDialog.dismiss();
}
@Override
public void onError() {
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
}
}
this is always showing an error and forcing my application to quit !
Thank's guys :)
My guess is that the error is because you are trying to modify an UI element (dialog) inside a background thread, which is not possible.
You don't need an
AsyncTask
for this, sincePicasso
already does the decoding in background.You get error because picasso's load function is already async. So you can do this in UI thread like: