2017-10-29 6 views
0

私はsetPictureToLink(someLink)を呼び出してから、直前setPictureToRedを呼び出すと現在、私はこの特定のビューに対するピカソのリクエストをキャンセルするにはどうすればよいですか?

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

間の競争条件に関するものです心配ですピカソはイメージを完全に読み込むことができます - 私はピカソが後で戻って赤いイメージを上書きすることを恐れています(これは私が望んでいないものです)。

何かこのようなことをする方法はありますか?

public void setPictureToRed() 
{ 
    // flush all previous loads for "myFavPicture" to avoid race conditions 
    Picasso.with(this).flush(myFavPicture); 
    myFavPicture.setImageResource(R.color.red); 
} 

答えて

1
Picasso.with(this).cancelRequest(myFavPicture); 
myFavPicture.setImageDrawable(null); 
myFavPicture.setImageResource(R.color.red); 
+0

'画像= myFavPicture'? – AlanSTACK

+0

はい、私の答えを編集します... plzはthat.Good luckをチェックします.. –

+0

'setImageResource(R.color.red)'をちょうど実行できるときに 'setImageDrawable(null)'が必要なのはなぜですか? – AlanSTACK

関連する問題