OkHttp使用教程

Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。
尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。
OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。

Read More

Retrofit 2 - 如何从服务器下载文件

如何声明Retrofit请求

如果你在阅读本文前没有写过任何一行Retrofit请求代码,那么最好看一下前面几篇博客。对于很多Retrofit使用者来说:定义一个下载文件的请求与其他请求几乎无异:

1
2
3
4
5
6
7
// option 1: a resource relative to your base URL
@GET("/resource/example.zip")
Call<ResponseBody> downloadFileWithFixedUrl();

// option 2: using a dynamic URL
@GET
Call<ResponseBody> downloadFileWithDynamicUrlSync(@Url String fileUrl);

Read More

Retrofit2与RxJava用法解析

Retrofit2是square公司出品的一个网络请求库,目前非常流行,特别适合于rest请求。网上也有不少介绍该库的文章,但别人的终究是别人的,还需要转化为自己的才行。正所谓“纸上得来终觉浅,绝知此事要躬行”,本着学习的态度笔者对retroift2的用法进行了下列研究,主要包括以下几个方面

  • get请求
  • post请求(包括key/value,以及body)
  • 文件上传(进度监听)
  • 文件下载
  • 与RxJava整合

    Read More

论Android Adapter notifyDataSetChanged与notifyDataSetInvalidated无效原因

最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因。

首先看一下notifyDataSetChanged与notifyDataSetInvalidated的区别

我们可应用粮仓来解释一下,两者的区别。

notifyDataSetChanged:粮仓中得粮食少了,或者多了,发送通知。

notifyDataSetInvalidated:粮仓变换了,比如原来从A仓取粮食,现在换成了B粮仓。

Read More