systemServer里设置默认时间存在的原生BUG
最近在项目中,需要设备起来的时候默认的系统时间设置到一个相对较新的时间点去,比如2018-07-01 08:00,那么怎么修改呢?我们知道在systemSever里有比较时间的原始功能代码如下:
在android4.4及以前的平台在这里执行是没有问题的,也就是说在这个地方修改就可以了。然而在android6.0、android7.1平台上都有这样一个bug,在这个位置修改就不行了。请看我们在SystemClock里的跟踪信息:
很明显这个时候mgr是等于null的,说明这个时候它还没有就绪,然后我们就跟一下ALARM service起来的地方:
我们知道了,调用它的地方起来的时间点比它自己起来还早,那肯定是找不到呢!怎么修改呢?如下:
就是等服务起来完成以后再去设置默认时间,这样就可以了,如下:
这样看来android平台一直都有这么一个bug,只不过大家还有很多其他修改的方法,笔者这种方法相对来说还是比较直观的。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
iOS开发之使用Git的基本使用(一)
现在越来越多的公司采用了Git作为版本管理工具,相对于传统的SVN,Git有着明显的优势,今天写一篇入门文章,教大家如何将自己写好的iOS项目通过Git传到GitHub账户上。 一、GitHub准备工作 在GitHub上创建一个属于自己的账户 首先打开 GitHub进行注册 GitHub网站.jpg 创建好帐号以后,登录并点击+创建一个新的repository 创建repository.jpg 简单的话,只需要填写如下信息 填写信息.jpg 然后点击Create按钮创建,此时会出现如下的界面 创建完成.jpg 这里面都是Git常用的命令,至此GitHub准备工作完成。 注意 复制图中箭头指向的那句指令 该网页不要关闭,备用 二、项目准备工作 在你的代码目录下(此处以桌面为例)建一个新的目录(文件夹,此处为testGit) 打开终端,切换到上面的文件夹,使用 git init命令初始化 初始化.jpg 用Xcode创建一个iOS项目,该项目就放在刚刚新建的文件夹下 在Xcode里面选择菜单Source Control下的commit 选择Xcode菜单.jpg 然后填写相关的日志信息后提...
- 下一篇
Aidl进程间通信详细介绍
目录介绍 1.问题答疑 2.Aidl相关属性介绍 2.1 AIDL所支持的数据类型 2.2 服务端和客户端 2.3 AIDL的基本概念 3.实际开发中案例操作 3.1 aidl通信业务需求 3.2 操作步骤伪代码 3.3 服务端操作步骤 3.4 客户端操作步骤 3.5 测试 4.可能出现的问题 4.1 客户端在子线程中发起通信访问问题 4.2 什么情况下会导致远程调用失败 4.3 设置aidl的权限,需要通过权限才能调用 5.部分源码解析 5.1 服务端aidl编译生成的java文件 5.2 客户端绑定服务端service原理 关于aidl应用案例 https://github.com/yangchong211/YCAudioPlayer 关于链接 1.技术博客汇总 2.开源项目汇总 3.生活博客汇总 4.喜马拉雅音频汇总 5.其他汇总 1.问题答疑 1.1.0 AIDL所支持的数据类型有哪些? 1.1.1 提供给客户端连接的service什么时候运行? 1.1.2 Stub类是干什么用的呢? 1.1.3 如何解决远程调用失败的问题? 2.Aidl相关属性介绍 2.1 AIDL所支持的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2全家桶,快速入门学习开发网站教程
- Hadoop3单机部署,实现最简伪集群
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6