前段时间遇到这样一个问题,app挂后台,然后activity页面通过glide去加载一张网络图片显示到ImageView上,然后给ImageView设置另外一张图片,然后再把app切换到前台。整个过程大概如下:
activity---onStop
Glide.with(this).load(url).into(ImageView);
...
ImageView.setImageResource(R.drawable.icon_default);
activity---onStart--onResume
此时会发现,ImageView显示的图片并不是icon_default,而是加载的网络图片。
究其原因,是Glide生命周期和Activity绑定在一起,在Activity stop后不会加载图片,直到再次start才会加载,这样之前设置的icon_default就被覆盖了。
所以,要解决这个问题,应该在ImageView.setImageResource(R.drawable.icon_default);前面再加一行代码:Glide.with(this).clear(ImageView);