Android 清晰灵活简单易用的App应用更新库
来源:互联网 发布:js金沙娱乐注册送58 编辑:程序博客网 时间:2024/05/16 07:35
从今天起每天都会写一遍Git开源项目给大家,今天的干货是App应用更新库,帮助App快速集成版本更新。开源项目来源于Git喜欢的可以Fork这些开源者。先看截图
这只是部分截图,全部可以去原地址观看,当然你也可以按照下面的介绍方式使用。
以下是使用方法
Gradle
repositories {
maven { url “https://jitpack.io” }
}
dependencies {
compile ‘com.github.czy1121:update:1.0.0’
}
Usage
基本用法
默认情况下,查询请求会需要三个参数: 包名(package), 版本号(version), 渠道(channel) package/version 从应用的 context 获取
// 设置默认更新接口地址与渠道
UpdateManager.setUrl(mCheckUrl, “yyb”);
// 进入应用时查询更新
UpdateManager.check(context);
// 在设置界面点击检查更新
UpdateManager.checkManual(context);
设置请求 url
设置 url 后不会额外添加 package/version/channel 等参数
UpdateManager.create(this).setUrl(mCheckUrl).check();
解析查询结果
查询结果需要解析成 UpdateInfo
public class UpdateInfo {
// 是否有新版本
public boolean hasUpdate = false;
// 是否静默下载:有新版本时不提示直接下载,下次启动时安装
public boolean isSilent = false;
// 是否强制安装:不安装无法使用 app
public boolean isForce = false;
// 是否可忽略该版本
public boolean isIgnorable = true;
// 是否是增量补丁包,暂不支持
public boolean isPatch = false;
public int versionCode;public String versionName;public String updateContent;public String url;public String md5;public long size;public String patchUrl;public String patchMd5;public long patchSize;
}
可以定制解析过程
UpdateManager.create(this).setUrl(mCheckUrl).setParser(new UpdateAgent.InfoParser() {
@Override
public UpdateInfo parse(String source) throws Exception {
UpdateInfo info = new UpdateInfo();
// todo
return info;
}
}).check();
更新版本对话框
UpdateManager.create(this).setOnPrompt(new UpdateAgent.OnPromptListener() {
@Override
public void onPrompt(UpdateAgent agent) {
// todo : 根据 agent.getInfo() 显示更新版本对话框,具体可参考 UpdateAgent.OnPrompt
}
}).check();
没有新版本或出错
UpdateManager.create(this).setOnFailure(new UpdateAgent.OnFailureListener() {
@Override
public void onFailure(UpdateError error) {
Toast.makeText(mContext, error.toString(), Toast.LENGTH_LONG).show();
}
}).check();
显示下载进度
可在通知栏显示下载进度,当 info.isSilent 为 true 显示
默认通知栏进度
UpdateManager.create(this).setNotifyId(998).check();
定制通知栏进度
UpdateManager.create(this).setOnNotify(new UpdateAgent.OnProgressListener() {
@Override
public void onStart() {
// todo: start
}
@Overridepublic void onProgress(int progress) { // todo: progress}@Overridepublic void onFinish() { // todo: finish}
}).check();
定制下载进度的对话框,当 info.isSilent 为 false 显示
UpdateManager.create(this).setOnProgress(new UpdateAgent.OnProgressListener() {
@Override
public void onStart() {
// todo: start
}
@Overridepublic void onProgress(int progress) { // todo: progress}@Overridepublic void onFinish() { // todo: finish}
}).check();
喜欢的可以关注微信公众号,哪里每天都会推荐一篇开源项目Git项目地址在里欢迎订阅
- Android 清晰灵活简单易用的App应用更新库
- Android 简单易用的应用更新库
- Android 简单的检查app版本更新
- Android笔记----app应用更新
- android app应用内更新
- 翻翻git之---逻辑清晰,简单好用的App内部锁控件 PinLockView
- android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android中Message机制的灵活应用
- Android Message机制的灵活应用
- 搭建PHP开发环境(XAMPP+PhpStorm)
- eclipse运行java程序时不自动保存的解决方法
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
- C++新旧代码的兼容
- 欢迎使用CSDN-markdown编辑器
- Android 清晰灵活简单易用的App应用更新库
- Java递归遍历查询音乐,文件夹
- java基础巩固----泛型
- NOIP2016提高组day1 换教室
- C/C++ 素数和逆素数的求解。。
- Java 1.8数组转换为List
- Express入门
- Java是如何调用相应重载方法的
- 使用Java的反射简单的实现ORM框架(五)