我尝试从一个扩展AsyncTask的类中发送给Picasso的url获取一个Bitmap。 它看起来像这样:
public class MoviesTask extends AsyncTask<String, Void, String[]> {
// Target object for Bitmap convert
private Target loadTarget;
private Bitmap mBitmap;
private byte[] img;
public void getBitmap(String url){
if (loadTarget == null)
loadTarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
mBitmap = bitmap;
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
Picasso.Builder builder = new Picasso.Builder(mContext);
builder.listener(new Picasso.Listener() {
@Override
public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) {
exception.printStackTrace();
}
});
builder.build().with(mContext).load(url).into(loadTarget);
}
我得到的例外是: 引起:java.lang.IllegalStateException:方法调用应该从主线程发生。
无法真正理解我的代码有什么问题,希望有人能帮助我解决这个问题。