使用GitHub开源的项目AppUpdate使用文档也写的非常清楚
1.设置Gradle 依赖
dependencies {
compile 'com.qianwen:update-app:3.5.2'
}
2.设置get方式请求服务器获取是否更新的JSON数据,返回的数据格式参加开源项目的使用文档
3.在需要app调用更新的时候引用下面代码并且更新下载
new UpdateAppManager
.Builder()
//当前Activity
.setActivity(this)
//更新地址
.setUpdateUrl(mUpdateUrl)
//实现httpManager接口的对象
.setHttpManager(new UpdateAppHttpUtil())
.build()
.update();
4.其中需要自己实现UpdateAppHttpUtil类给类实现接口HttpManager
我的这个UpdateAppHttpUtil实现代码如下(由okhttp3实现)
(需要gradle依赖
implementation 'com.zhy:okhttputils:2.6.2' implementation 'com.squareup.okhttp3:okhttp:3.14.2'
)
import android.support.annotation.NonNull;
import com.vector.update_app.HttpManager;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.FileCallBack;
import com.zhy.http.okhttp.callback.StringCallback;
import java.io.File;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Request;
public class UpdateAppHttpUtil implements HttpManager {
/**
* 异步get
*
* @param url get请求地址
* @param params get参数
* @param callBack 回调
*/
@Override
public void asyncGet(@NonNull String url, @NonNull Map params, @NonNull final Callback callBack) {
OkHttpUtils.get()
.url(url)
.params(params)
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
callBack.onError("回调错误");
}
@Override
public void onResponse(String response, int id) {
callBack.onResponse(response);
}
});
}
/**
* 异步post
*
* @param url post请求地址
* @param params post请求参数
* @param callBack 回调
*/
@Override
public void asyncPost(@NonNull String url, @NonNull Map params, @NonNull final Callback callBack) {
OkHttpUtils.post()
.url(url)
.params(params)
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
callBack.onError("");
}
@Override
public void onResponse(String response, int id) {
callBack.onResponse(response);
}
});
}
/**
* 下载
*
* @param url 下载地址
* @param path 文件保存路径
* @param fileName 文件名称
* @param callback 回调
*/
@Override
public void download(@NonNull String url, @NonNull String path, @NonNull String fileName, @NonNull final FileCallback callback) {
OkHttpUtils.get()
.url(url)
.build()
.execute(new FileCallBack(path, fileName) {
@Override
public void inProgress(float progress, long total, int id) {
callback.onProgress(progress, total);
}
@Override
public void onError(Call call, Exception e, int id) {
callback.onError("");
}
@Override
public void onResponse(File response, int id) {
callback.onResponse(response);
}
@Override
public void onBefore(Request request, int id) {
super.onBefore(request, id);
callback.onBefore();
}
});
}
}
其它方法的具体使用参见https://github.com/WVector/AppUpdate/blob/master/java.md
该篇文件也介绍的挺好可以参考https://www.jianshu.com/p/9bb99720b420