使用bugly热更新时自定义升级弹窗的UI样式
项目的热更新用的bugly,不过一直都只是使用他自带的升级弹窗。
不过UI小姐姐说弹窗太丑了,要自定义。
bugly有提供自定义UI的官方文档:https://bugly.qq.com/docs/user-guide/advance-features-android-beta/?v=20160824161206#ui
不过关于自定义里并没有讲得很细致,是以为我可以凭快秃的脑袋猜出来叭。
官方文档里有提到需要标注的5个tag:

可是并没有说这五个tag都必须出现在布局中, 否则将显示不出更新的信息
所以布局文件里不管有没有用到这些,都要全部设置出来,比如我的布局文件里只用了标题和说明以及下载按钮

但在布局文件里依然添加了另外两个tag:
<TextView
android:tag="beta_cancel_button"
android:layout_width="0dp"
android:layout_height="0dp" />
<TextView
android:tag="beta_upgrade_info"
android:layout_width="0dp"
android:layout_height="0dp" />
噢还有就是弹窗的半透明背景需要自己在布局文件中设置。
一般是在application类里初始化bugly,在init之前先设置布局文件
Beta.upgradeDialogLayoutId = R.layout.activity_upgrade;//注意这句要设置在bugly init之前
Bugly.init(this, Constants.APP_ID_BUGLY, false);
Beta.upgradeListener = new UpgradeListener() {
@Override
public void onUpgrade(int ret, UpgradeInfo strategy, boolean isManual, boolean isSilence) {
if (strategy != null) {
L.e(TAG, "检测到更新");
Intent i = new Intent();
i.setClass(getApplicationContext(), UpgradeActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
} else {
L.e(TAG, "没有更新");
}
}
}; /* 设置更新状态回调接口 */
Beta.upgradeStateListener = new UpgradeStateListener() {
@Override
public void onUpgradeSuccess(boolean isManual) {
L.e(TAG, "UPGRADE_SUCCESS");
} @Override
public void onUpgradeFailed(boolean isManual) {
L.e(TAG, "UPGRADE_FAILED");
} @Override
public void onUpgrading(boolean isManual) {
L.e(TAG, "UPGRADE_CHECKING");
} @Override
public void onDownloadCompleted(boolean b) { } @Override
public void onUpgradeNoVersion(boolean isManual) {
L.e(TAG, "UPGRADE_NO_VERSION");
}
};
跳转的UpgradeActivity就是刚刚画布局的类,把背景半透明就好了,至于这个类里的代码就是先这样,这样,再那样,就可以了(官方文档里有)
使用bugly热更新时自定义升级弹窗的UI样式的更多相关文章
- Cordova热更新和App升级 - 简书
原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇 ...
- Lua热更新时正确设置文件名
Lua热更新时正确设置文件名(金庆的专栏 2016.12)Lua热更新模块见:https://github.com/jinq0123/hotfix其中使用 load(chunk) 来加载更新后的内容, ...
- 使用yum更新时不升级Linux内核的方法
RedHat/CentOS/Fedora使用 yum update 更新时,默认会 升级内核 .但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦. ...
- 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- CustomYieldInstruction 自定义中断指令
ActionScript3脚本引擎为了方便热更新逻辑开发,提供的从脚本继承Unity类库功能在一些情况下可以提供开发的便利. 这次来建立一个示例,演示一下如何在脚本中自定义协程中断指令 Unity中的 ...
- Cordova热更新和App升级
web代码的更新此更新方式,只需要更新web前段代码,不需要更新android的原生代码.只是对js.html等的更新.1.添加插件 Cordova Hot Code Pushcordova plug ...
- Linux/CentOS配置:使用yum update更新时不升级内核的方法
RedHat/CentOS/Fedora使用 yum update 更新时,默认会升级内核.但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦.所以 ...
- [Erlang10]为什么热更新时,Shell执行2次l(Module)后会把原来用到Module的进程 kill?
0. 问题引入: -module(hot_code_server). -compile(export_all). start() –> erlang:register(?MODULE, erla ...
- walle多渠道打包+Tinker(bugly)热更新集成+360加固(乐固)
这三个东东是干啥的相信大家都有所耳闻了,如果你没有听说过,请出门左拐,百度一下你就知道.这里不对这三个东东具体的集成方式做详细的介绍,因为官方文档已经写的很详细了,主要是对同时使用这三个东东时所需要注 ...
- bugly集成了Tinker热更新
介绍 热更新能力是Bugly为解决开发者紧急修复线上bug,而无需重新发版让用户无感知就能把问题修复的一项能力.Bugly目前采用微信Tinker的开源方案,开发者只需要集成我们提供的SDK就可以实现 ...
随机推荐
- 机器学习笔记4:SVM支持向量积的推导过程
内容来自:https://github.com/GreedyAIAcademy/Machine-Learning 最初 支持向量机的目的:找到一条好的分割线 什么杨的分割线最好? 有最大间隔的分割线最 ...
- 【Linux】Linux下查找JDK默认安装路径
一.查找效果图 二.查找步骤 1.首先确认是否已按照JDKjava -version [root@iZ2ze3zda3caeyx6pn7c5zZ base-eureka]# java -version ...
- python调用C语言接口
python调用C语言接口 注:本文所有示例介绍基于linux平台 在底层开发中,一般是使用C或者C++,但是有时候为了开发效率或者在写测试脚本的时候,会经常使用到python,所以这就涉及到一个问题 ...
- Beta冲刺第5次
二.Scrum部分 1. 各成员情况 翟仕佶 学号201731103226 今日进展 新增将图片转为粉笔画功能代码 存在问题 难者不会,会者不难,主要是参数设置问题 明日安排 视情况而定,可能还是写扩 ...
- IP分片攻击——就是发送部分分片报文,让对方一直等待从而耗对方内存的DoS攻击
为了传送一个大的IP报文,IP协议栈需要根据链路接口的MTU对该IP报文进行分片,通过填充适当的IP头中的分片指示字段,接收计算机可以很容易的把这些IP分片报文组装起来. 目标计算机在处理这些分片 ...
- 2019年杭电多校第一场 1002题Operation(HDU6579+线性基)
题目链接 传送门 题意 初始时有\(n\)个数,现在有\(q\)次操作: 查询\([l,r]\)内选择一些数使得异或和最大: 在末尾加入一个数. 题目强制在线. 思路 对于\(i\)我们记录\([1, ...
- ubuntu坑(持续更新~)
0.you should not install packages from any repository that represents a different system version to ...
- discuz x3.3后台admin.php防止直接恶意访问
功能说明:admin.php是discuz默认的后台地址,正常情况下可以直接访问,为了防止某些恶意访问的情况,可以修改以下内容进行安全性能提升. 适用版本:Discuz!x1-x3.3 具体实施方案: ...
- mysql,本地连接看到的数据库不全,远程连接看到的数据库是完整的
xshell本地连接数据库,show databases; 下面只显示了两个数据库,mysql数据库看不到,问题原因是:用户没有权限 navicat远程连接,比上面看到的数据库多了很多,能看到mysq ...
- Futex同步机制简介
http://blog.csdn.net/u013234805/article/details/24796551 Futex是fast userspacemutex的缩写,意思是快速用户空间互斥体.它 ...