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

简介:

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


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



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


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


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


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

目录
相关文章
|
7月前
|
Java Android开发
Android系统 获取用户最后操作时间回调实现和原理分析
Android系统 获取用户最后操作时间回调实现和原理分析
210 0
|
4月前
|
存储 安全 iOS开发
iOS 16 系统键盘修复问题之确定UIKeyboardTaskQueue类中对_lock的使用是否正确如何解决
iOS 16 系统键盘修复问题之确定UIKeyboardTaskQueue类中对_lock的使用是否正确如何解决
|
4月前
|
编译器
你正在调试XXX的发布版本,如果在启用 仅我的代码 的同时,使用通过编译器优化的发布版本
你正在调试XXX的发布版本,如果在启用 仅我的代码 的同时,使用通过编译器优化的发布版本
50 0
|
安全 Java API
JDK21更新内容:动态加载禁用
JDK21更新内容:动态加载禁用
|
Android开发 芯片
RK3399平台开发系列讲解(系统修改记录篇)1.17、Android系统永不休眠修改步骤(一般是为了开发便利)
RK3399平台开发系列讲解(系统修改记录篇)1.17、Android系统永不休眠修改步骤(一般是为了开发便利)
170 0
RK3399平台开发系列讲解(系统修改记录篇)1.17、Android系统永不休眠修改步骤(一般是为了开发便利)
|
Java
【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);
【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);
393 0
【JAVA】【SpringBoot】当重新启动项目的时候,需要把用户一些状态回退,但是回退失败了,项目却没有停止,可以用System.exit(1);
|
缓存 监控 iOS开发
App启动速度监控-方法级别启动耗时检查工具
本文是基于戴铭大佬的课程iOS开发高手课,加上个人实践+理解编写 本文已同步至掘金:App启动速度监控-方法级别启动耗时检查工具
App启动速度监控-方法级别启动耗时检查工具
Qt [GC9-9]:给我的程序增加一个功能,显示当前时间
Qt [GC9-9]:给我的程序增加一个功能,显示当前时间
117 0
Qt [GC9-9]:给我的程序增加一个功能,显示当前时间
|
Java
【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。
【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。
152 0
|
安全
Docsify CLI v4.4.2版本发布,增加初始化时重写文件问询
此次版本发布,更新了旧版本依赖项中的漏洞,同时也添加一些功能和修复了一个 Bug
187 0