2016-12-07 8 views
0

Picasaを使用して背景画像を読み込むBackgroundImageActivityがあります。しかし、私は家に戻って(BackgroundImageActivityで呼び出されたonStop())、別の背景イメージをロードするはずのこのアクティビティの別のインスタンスに入りますが、最初の2秒では以前のBackgroundImageActivityからのイメージが表示されます。これはキャッシュのようなものですか?Androidでピカソが読み込んだ画像を消去する方法は?

このイメージを消去して、BackgroundImageActivityの新しいインスタンスに入るたびに以前のイメージが表示されないようにするにはどうすればよいですか?

public class BackgroundImageActivity extends Activity { 

    @Override 
    public void onCreate(final Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     initBackground(); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     Picasso.invalidate(imageUrl, getApplicationContext()); 
    } 

    private void initBackground() { 
     ... 
    } 

    private void setBg(final String imageUrl, final int bg) { 

     this.imageUrl = imageUrl; 

     final RequestCreator picassoRequest = Picasso.load(imageUrl, bg).memoryPolicy(MemoryPolicy.NO_CACHE); 

     targetReference = new Target() { 
      @Override 
      public void onBitmapLoaded(final Bitmap bitmap, final Picasso.LoadedFrom from) { 
       ... 
      } 

      @Override 
      public void onBitmapFailed(final Drawable errorDrawable) { 
       ... 
      } 

      @Override 
      public void onPrepareLoad(final Drawable placeHolderDrawable) { 
       ... 
      } 
     }; 

     picassoRequest.placeholder(bg).error(bg).into(targetReference); 
    } 


} 

ありがとうございます!

答えて

0

イメージをロードするときにこのコードを使用します。

Picasso.with(getContext()).load(data.get(pos).getFeed_thumb_image()).memoryPolicy(MemoryPolicy.NO_CACHE).into(image); 

ピカソは、バックグラウンドでキャッシュすることなくImageViewに直接画像を設定します。これは軽量アプリです。

関連する問題