安卓bug解决
bug: java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
原因: 加载图片的时候传入了一个已经销毁的Activity或者是一个空的Context ,Fragment 挂载的Activity为空导致的
分析: 加载图片的方法是Glide.with(context).load(url).into(imageView);
点击进入with方法发现返回一个retriever.get(activity)
public static RequestManager with(Activity activity) {
RequestManagerRetriever retriever = RequestManagerRetriever.get();
return retriever.get(activity);
}
进入retriever.get(activity)方法
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private static void assertNotDestroyed(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed()) {
throw new IllegalArgumentException("You cannot start a load for a destroyed activity");
}
}
可以看出是由于activity.isDestroyed() 为true导致的。
解决方案: 使用glide加载图片前一定要判断上下文是否为空。