如何取消特定视图的毕加索请求?

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);
    }
}

我目前的问题是担心 setPictureToRedsetPictureToLink

之间的竞争条件

如果我调用 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);