android – Picasso java.lang.IllegalStateException:方法调用不应该从主线程发生

我试图使用毕加索从URL获取三个位图图像
public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState);
  setContentView(R.layout.tab2);
  Drawable d1 = new BitmapDrawable(Picasso.with(Tab2.this).load(zestimateImg1).get());
}

我正在使用此代码致命异常.我怀疑它与AsyncTask中应该这样做的事实有关,但是我无法让它工作.如果使用它是可以避免的,我想这样做,而不使用AsyncTask.

如何让代码运行而不会崩溃?

如果最好的方法是使用AsyncTask,那么该解决方案就可以了.

解决方法

您不能在主线程中进行同步请求.如果您不想使用AsyncThread,那么只需将Picasso与Target配合使用即可.
Picasso.with(Tab2.this).load(zestimateImg1).into(new Target(...);

我建议您保存对您的目标的引用:

Target mTarget =new Target (...);

这是因为毕加索对它们使用了弱引用,并且在进程完成之前可能会收集垃圾.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...