Android 使用Glide 报You cannot start a load for a destroyed activity异常
来源:互联网 发布:vimeo软件下载 编辑:程序博客网 时间:2024/04/26 11:55
最近测试在测试的时候发现项目在返回的时候偶现崩溃现象,经过抓日子发现是Glide加载图片时所报的错误,根据错误信息提示意思指Glide在加载的过程中activity被销毁掉了,导致程序崩溃。我们都知道Glide加载机制是与Fragment和Activity生命周期息息相关,在Glide中,图片的加载会跟随这Activity或者Fragment的生命周期进行相应的加载,停止等操作。
在网上查找相关资料发现基本都是在出现此错误时将getApplicationContext()作为Glide参数即可,虽然此方法可行,但这样的话Glide加载会在应用程序被杀死的时候才会停止。这里并不是很推荐这种做法。这里我们可以自己对Glide稍微封装下:
public class ImageLoader { private Activity activity; private Fragment fragment; private RequestManager manager; public ImageLoader(Activity activity) { this.activity = activity; manager = Glide.with(activity); } public ImageLoader(Fragment fragment) { this.fragment = fragment; manager = Glide.with(fragment); } /** * 获取RequestManager对象 * @return */ public RequestManager getManager() { return manager; } /** * 加载普通图片 * @param object * @param error * @param placeHolder * @param view */ public void loadImage(Object object, int error, int placeHolder, ImageView view) { manager.load(object) .error(error) .placeholder(placeHolder) .into(view); } /** * 加载圆形图片 * @param object * @param error * @param placeHolder * @param view */ public void loadCircularImage(Object object,int error,int placeHolder, ImageView view) { manager.load(object) .error(error) .placeholder(placeHolder) .transform(new GlideCircleTransform(MyApp.getContext())) .into(view); }}
这里我们可以通过先获取RequestManager
对象再进行图片的加载:
//实例化 获取RequestManager ImageLoader imageLoader = new ImageLoader(this);//调用方法加载图片imageLoader.loadImage(url,error,placeHolder,imageView);//将需要使用到的地方 进行调用 例如:MyAdapter adapter = new Myadapter(imageLoader);//适配器中使用.......
这样就可以很好的避免上述出现的问题,而且还便于我们管理Glide加载图片。其实对于开源框架在使用中都比较建议大家对其进行二次封装以满足我们日后对其更改与维护。哈哈!
阅读全文
1 0
- Android 使用Glide 报You cannot start a load for a destroyed activity异常
- Android Glide You cannot start a load for a destroyed activity 的异常及解决方法
- Android Glide You cannot start a load for a destroyed activity 的异常及解决方法
- Glide-You cannot start a load for a destroyed activity
- Glide类似You cannot start a load for a destroyed activity异常简单分析
- android不在坑五:Android Glide You cannot start a load for a destroyed activity
- 【一】Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- 解决-Glide You cannot start a load for a destroyed activity
- 使用Glide框架时报出,java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- 【Android】IllegalArgumentException: You cannot start a load for a destroyed activity
- Glide异常:You cannot load start a load for a destory activity
- System.err: java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- You cannot start a load for a destroyed activity错误处理
- java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- JavaScript中的字符串替换
- FZU 1752 A^B mod C (坑坑坑坑!!!)
- 锂电池相关知识
- 用微信小程序开店之四——小程序是怎样练成的
- 在项目中如何将string转换成date
- Android 使用Glide 报You cannot start a load for a destroyed activity异常
- Python Threading 模块
- 1035. Password (20)
- No.1
- SpringBoot学习笔记——一些Spring注解
- 每日英语阅读(二十三)
- Android学习随笔
- Linux下c语言多线程编程
- ArcGIS——数据库与服务备份(二、arcgis server中站点服务的备份和恢复)