如何取消特定视图的毕加索请求?
How to cancel picasso requests for specific view?
目前我有一些类似的东西
public class SomeActivity extends AppCompatActivity
{
public AppCompatImageView myFavPicture;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_some);
myFavPicture = (AppCompatImageView) findViewById(R.id.my_fav_picture);
}
public void setPictureToRed()
{
myFavPicture.setImageResource(R.color.red);
}
public void setPictureToLink(Uri link)
{
Picasso.with(this).load(link).into(myFavPicture);
}
}
我目前的问题是担心 setPictureToRed
和 setPictureToLink
之间的竞争条件
如果我调用 setPictureToLink(someLink)
然后在 picasso 可以完全加载图像之前立即调用 setPictureToRed
- 我担心 picasso 稍后会回来并覆盖红色图片(这不是我想要)
有什么方法可以做这样的事情吗?
public void setPictureToRed()
{
// flush all previous loads for "myFavPicture" to avoid race conditions
Picasso.with(this).flush(myFavPicture);
myFavPicture.setImageResource(R.color.red);
}
Picasso.with(this).cancelRequest(myFavPicture);
myFavPicture.setImageDrawable(null);
myFavPicture.setImageResource(R.color.red);
目前我有一些类似的东西
public class SomeActivity extends AppCompatActivity
{
public AppCompatImageView myFavPicture;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_some);
myFavPicture = (AppCompatImageView) findViewById(R.id.my_fav_picture);
}
public void setPictureToRed()
{
myFavPicture.setImageResource(R.color.red);
}
public void setPictureToLink(Uri link)
{
Picasso.with(this).load(link).into(myFavPicture);
}
}
我目前的问题是担心 setPictureToRed
和 setPictureToLink
如果我调用 setPictureToLink(someLink)
然后在 picasso 可以完全加载图像之前立即调用 setPictureToRed
- 我担心 picasso 稍后会回来并覆盖红色图片(这不是我想要)
有什么方法可以做这样的事情吗?
public void setPictureToRed()
{
// flush all previous loads for "myFavPicture" to avoid race conditions
Picasso.with(this).flush(myFavPicture);
myFavPicture.setImageResource(R.color.red);
}
Picasso.with(this).cancelRequest(myFavPicture);
myFavPicture.setImageDrawable(null);
myFavPicture.setImageResource(R.color.red);