首页 > 代码库 > Volley使用方法

Volley使用方法

作用:相当于启动AsyncTask,并且解决了4.x AsyncTask的串行执行问题

应用场景:仅限于耗时操作为http请求,如果是数据库等IO操作不能使用

使用步骤:

1) 导入lib_volley库,拷贝Demo中的app和MyVolley,并在清单中配置app

    A45502AC8B734625A41F4B9CF3351F0E        

    E30901B51F4E43199FA97E8652B59526

2) 在需要执行异步任务的地方,得到请求队列

    A6D861F2C2494555A4273880F317F011

3) 创建Http请求

    4C27D4E8F91E44A5AF8DB06DF41D7E24

    AAF1A2411476481F9660E89DE511E37A

    903EA26F108B41E7AC918BCB2021F34B

4) 将请求加入到队列,请求开始执行

    D880616F1592488D8A1B9DCBEBD37035

  

6. 解决Volley下载字符串乱码问题

1) 新建一个类,继承StringRequest

2) 拷贝StringRequest源代码中的parseNetworkResponse方法

3) 修改默认编码格式为utf-8

    B3221B0ACD7444718FC1328CB9137FF4  

    

    664B4E9EE2354A6CA5B2B868EEACBD19             

4) 新建的请求使用自定义的类

    F194C7EEC27C41CC8549FCADBC5D4349

7. 笔试题:应用程序的真正入口

    Application

    应用场景:当需要在Activity启动前初始化一些资源

    用法:

    1) 新建一个类,继承Application,重写onCreate()方法

    2) 在清单中配置    973061BBC78947108F17C4855E849AAF

    3) 在Activity或Service中,得到Application对象的方法

        F88FA4FEEC664129B75CB91C589B9341


8. ListView/GridView中有大量图片

    1) 异步加载

    2) 内存缓存

    3) 外存缓存

使用开源项目Android-Universal-Image-Loader-master

简称UIL


9. UIL的用法

1) 导入库或者拷贝jar

2) 从Demo中拷贝UILApplication,删除测试模式分支,并配置到清单文件

3) 在清单中增加Internet权限

4) 使用UIL异步下载

    39C8516B568F434D920C4C81B872FBC6

    C51CB45211264EBDB65D52BA3E59685B

    D6F85248B92B4E009FA72960484E6E3F

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/universalimageloader/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/universalimageloader/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