systemServer里设置默认时间存在的原生BUG

简介:

          最近在项目中,需要设备起来的时候默认的系统时间设置到一个相对较新的时间点去,比如2018-07-01 08:00,那么怎么修改呢?我们知道在systemSever里有比较时间的原始功能代码如下:


    在android4.4及以前的平台在这里执行是没有问题的,也就是说在这个地方修改就可以了。然而在android6.0、android7.1平台上都有这样一个bug,在这个位置修改就不行了。请看我们在SystemClock里的跟踪信息:



           很明显这个时候mgr是等于null的,说明这个时候它还没有就绪,然后我们就跟一下ALARM service起来的地方:


我们知道了,调用它的地方起来的时间点比它自己起来还早,那肯定是找不到呢!怎么修改呢?如下:


 就是等服务起来完成以后再去设置默认时间,这样就可以了,如下:


  这样看来android平台一直都有这么一个bug,只不过大家还有很多其他修改的方法,笔者这种方法相对来说还是比较直观的。

目录
相关文章
|
22天前
|
存储
Qt更新组件出现(“要继续此操作,至少需要一个有效且已启用的储存库”)
Qt更新组件出现(“要继续此操作,至少需要一个有效且已启用的储存库”)
Qt更新组件出现(“要继续此操作,至少需要一个有效且已启用的储存库”)
|
27天前
|
Kubernetes Shell Docker
ChaosBlade设置问题之无法设置加压时间如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
|
3月前
|
编解码
亚丁号自动阅读第一次更新
亚丁号自动阅读第一次更新
17 0
|
Prometheus Kubernetes Cloud Native
Flagger(应用自动发布)介绍和原理剖析
## 简介 [Flagger](https://github.com/weaveworks/flagger)是一个能使运行在k8s体系上的应用发布流程全自动(无人参与)的工具, 它能减少发布的人为关注时间, 并且在发布过程中能自动识别一些风险(例如:RT,成功率,自定义metrics)并回滚. ## 主要特性 ![features](https://intranetproxy.ali
4298 0
|
Java
【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。
【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。
117 0
|
编解码 监控 安全
【新功能】安卓手机设置“自动”初始化
【新功能】安卓手机设置“自动”初始化
1292 0
|
网络协议 Unix API
Swoole v4.5.5 版本发布,增加配置项检测
此版本增加了配置项检测功能
151 0
Qt [GC9-9]:给我的程序增加一个功能,显示当前时间
Qt [GC9-9]:给我的程序增加一个功能,显示当前时间
82 0
Qt [GC9-9]:给我的程序增加一个功能,显示当前时间
|
Web App开发
Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
630 0
Chrome 插件开发-桌面通知设置实战演示,设置通知显示、存在时间
Fundebug 微信小程序BUG 监控插件更新至 1.3.1,新增 httpTimeout 配置选项,支持监控 HTTP 慢请求
摘要: 1.3.1新增 httpTimeout 配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG。 Fundebug是专业微信小程序 BUG 监控服务,可以第一时间捕获线上环境中小程序的异常、错误或者 BUG,及时给开发者推送报警,帮助您快速修复 BUG。
1074 0

热门文章

最新文章