美文网首页
NoHttp使用小结

NoHttp使用小结

作者: Goorwl | 来源:发表于2017-02-06 20:46 被阅读0次
    • 配置信息

      • 当底层使用okhttp时,配置如下代码

          compile 'com.yanzhenjie.nohttp:okhttp:1.1.0'
        
      • 当底层使用HttpURLConnection时,配置如下代码

          compile 'com.yolanda.nohttp:nohttp:1.1.0'
        
    • 在application中初始化【在清单文件中队application进行name标签声明】

        NoHttp.initialize(this);
      
    • 权限添加

        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      
    • 使用步骤:

      • 1 创建请求队列【建议设置为单例模式,默认线程池为3】

          RequestQueue requestQueue = NoHttp.newRequestQueue();   
        
      • 2 数据请求:

        • 1 字符串类型请求

            //创建请求要求
            Request<String> stringRequset = NoHttp.createStringRequest("https://www.so.com", RequestMethod.GET);
            
            //添加监听结果
            OnResponseListener<String> listener = new OnResponseListener<String>() {
                @Override
                public void onStart(int what) {
                }
          
                @Override
                public void onSucceed(int what, Response<String> response) {
                    Log.e(TAG,Thread.currentThread().getName() +  "onSucceed:  " + response.get());
                }
          
                @Override
                public void onFailed(int what, Response<String> response) {
                }
          
                @Override
                public void onFinish(int what) {
                }
            };
            //添加任务
            queue.add(0,stringRequset,listener);    
          
        • 2 加载图片

            Request<Bitmap> requeset= NoHttp.createImageRequest("http://p2.so.qhmsg.com/sdr/1365_768_/t01c9a24439f573d6cc.jpg",RequestMethod.GET);
            OnResponseListener<Bitmap> listener = new OnResponseListener<Bitmap>() {
                @Override
                public void onStart(int what) {
                }
          
                @Override
                public void onSucceed(int what, Response<Bitmap> response) {
                    iv.setImageBitmap(response.get());
                }
          
                @Override
                public void onFailed(int what, Response<Bitmap> response) {
                }
          
                @Override
                public void onFinish(int what) {
                }
            };
            //设置缓存模式
            requeset.setCacheMode(CacheMode.REQUEST_NETWORK_FAILED_READ_CACHE);
            queue.add(1,requeset,listener);     
          
        • 3 下载文件

            //单独的一个任务队列
            DownloadQueue downQueue = NoHttp.getDownloadQueueInstance();
            DownloadRequest request = NoHttp.createDownloadRequest("http://p2.so.qhmsg.com/sdr/1365_768_/t01c9a24439f573d6cc.jpg","/mnt/sdcard/photo",false);
          
            DownloadListener listener= new DownloadListener() {
                @Override
                public void onDownloadError(int what, Exception exception) {
                    Log.e(TAG, "onDownloadError:  " + Thread.currentThread().getName() + exception.getMessage());
                }
          
                @Override
                public void onStart(int what, boolean isResume, long rangeSize, Headers responseHeaders, long allCount) {
                    Log.e(TAG, "onStart:  "+Thread.currentThread().getName());
                }
          
                //更新进度
                @Override
                public void onProgress(int what, int progress, long fileCount) {
                    Log.e(TAG, "onProgress:  "+progress);
                }
          
                @Override
                public void onFinish(int what, String filePath) {
                    Toast.makeText(MainActivity.this, Thread.currentThread().getName()+"" + filePath, Toast.LENGTH_SHORT).show();
                    Log.e(TAG, "onFinish:  " + filePath);
                    Bitmap bitmap = BitmapFactory.decodeFile(filePath);
                    iv1.setImageBitmap(bitmap);
                }
          
                @Override
                public void onCancel(int what) {
                }
            };
            downQueue.add(0,request,listener);
          
    • 未完待续...

    • 注意:

    相关文章

      网友评论

          本文标题:NoHttp使用小结

          本文链接:https://www.haomeiwen.com/subject/rhbuittx.html