在使用Glide轮播显示图片时,如果图片在播放中使用finish()函数回退到上一页就会报这样的错误,所以我们可以在Glide请求之前进行Activity存在性的判断
/**
* 判断Activity是否Destroy
* @param activity
* @return
*/
public static boolean isDestroy(Activity mActivity) {
if (mActivity== null || mActivity.isFinishing() || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mActivity.isDestroyed())) {
return true;
} else {
return false;
}
}
if(!isDestroy((Activity)context)){
RequestOptions op= new RequestOptions().centerCrop().error(R.mipmap.test);
Glide.with(context).load(url).apply(op).into(view);
}
参考:https://segmentfault.com/a/1190000020772905?utm_source=tag-newest
解决Glide图片轮播时finish()导致的错误
在Android开发中,当使用Glide加载图片并进行轮播展示时,若在图片播放过程中调用Activity的finish()方法,可能会引发错误。为避免这种情况,可以先检查Activity是否已销毁。提供了一个名为isDestroy()的方法,通过判断Activity是否为null,是否正在finishing(),或者在API 17及以上版本中是否已被destroyed()。如果Activity已销毁,则返回true,否则返回false。在加载图片前进行此检查,可以有效防止错误的发生。
899

被折叠的 条评论
为什么被折叠?



