Volley使用方法
作用:相当于启动AsyncTask,并且解决了4.x AsyncTask的串行执行问题
应用场景:仅限于耗时操作为http请求,如果是数据库等IO操作不能使用
使用步骤:
1) 导入lib_volley库,拷贝Demo中的app和MyVolley,并在清单中配置app
2) 在需要执行异步任务的地方,得到请求队列
3) 创建Http请求
4) 将请求加入到队列,请求开始执行
6. 解决Volley下载字符串乱码问题
1) 新建一个类,继承StringRequest
2) 拷贝StringRequest源代码中的parseNetworkResponse方法
3) 修改默认编码格式为utf-8
4) 新建的请求使用自定义的类
7. 笔试题:应用程序的真正入口
Application
应用场景:当需要在Activity启动前初始化一些资源
用法:
1) 新建一个类,继承Application,重写onCreate()方法
2) 在清单中配置
3) 在Activity或Service中,得到Application对象的方法
8. ListView/GridView中有大量图片
1) 异步加载
2) 内存缓存
3) 外存缓存
使用开源项目Android-Universal-Image-Loader-master
简称UIL
9. UIL的用法
1) 导入库或者拷贝jar
2) 从Demo中拷贝UILApplication,删除测试模式分支,并配置到清单文件
3) 在清单中增加Internet权限
4) 使用UIL异步下载
10. StrictMode严格模式(了解)
4.x,不允许在main线程执行http请求
罕见问题:
1. [2014-08-20 16:25:32 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/nostra13/universalp_w_picpathloader/cache/disc/DiscCacheAware;
[2014-08-20 16:25:32 - EX40_使用UIL] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/nostra13/universalp_w_picpathloader/cache/disc/DiscCacheAware;
原因:即引入了库,libs目录中同时也含有jar包
解决方法:删除一个
2. 使用UIL遇到的问题
08-20 08:30:04.873: E/AndroidRuntime(20641): Caused by: java.lang.IllegalStateException: ImageLoader must be init with configuration before using