Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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 – Picasso java.lang.IllegalStateException:方法调用不应该从主线程发生全部内容,希望文章能够帮你解决android – Picasso java.lang.IllegalStateException:方法调用不应该从主线程发生所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。