Android系统开发之TimeZoneDetectorService浅析--下

news2025/1/18 20:56:12

TimeZoneDetectorService类图

在这里插入图片描述

可以看出TimeZoneDetectorService类,其具体实现是由TimeZoneDetectorStrategy类完成的。

在TimeZoneDetectorService类中,三种更新时区的接口分别为:

suggestGeolocationTimeZone()   //更新时区主要有三种方式 ,这是Geolocation方式
+boolean suggestManualTimeZone()  //更新时区主要有三种方式 ,这是手动Manual方式
+void suggestTelephonyTimeZone( //更新时区主要有三种方式 ,这是手动telephony方式

而在TimeZoneDetectorStrategy中,三种更新时区的接口分别为:

void suggestTelephonyTimeZone()//这对应用telephony更新时区
boolean suggestManualTimeZone()//这对应用手动Manual更新时区
+void suggestGeolocationTimeZone()//这对应用Geolocation更新时区

其我们上面提到的doAutoTimeZoneDetection接口,更是关注的重点:

doAutoTimeZoneDetection()//针对三种更新时区的方式来更新时区
private void doAutoTimeZoneDetection(
        @NonNull ConfigurationInternal currentUserConfig, @NonNull String detectionReason) {
    // Use the correct algorithm based on the user's current configuration. If it changes, then
    // detection will be re-run.
    switch (currentUserConfig.getDetectionMode()) {
        case ConfigurationInternal.DETECTION_MODE_MANUAL:
            // No work to do.
            break;
        case ConfigurationInternal.DETECTION_MODE_GEO: {
            boolean isGeoDetectionCertain = doGeolocationTimeZoneDetection(detectionReason);
            // When geolocation detection is uncertain of the time zone, telephony detection
            // can be used if telephony fallback is enabled and supported.
            if (!isGeoDetectionCertain
                    && mTelephonyTimeZoneFallbackEnabled.getValue()
                    && currentUserConfig.isTelephonyFallbackSupported()) {
                doTelephonyTimeZoneDetection(detectionReason + ", telephony fallback mode");
            }
            break;
        }
        case ConfigurationInternal.DETECTION_MODE_TELEPHONY:
            doTelephonyTimeZoneDetection(detectionReason);
            break;
        default:
            Slog.wtf(LOG_TAG, "Unknown detection mode: "
                    + currentUserConfig.getDetectionMode());
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1416385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux安装docker-compose

前言 如果你的docker版本是23,请移步到linux安装新版docker(23)和docker-compose这篇博客 查看docker版本命令: docker --version今天安装docker-compose的时候,找了很多教程,但是本地一直报错&#xff0…

【mongoDB】图形化界面工具(mongoDB Compass)

官网地址:https://www.mongodb.com/try/download/compass 下载完之后直接安装 桌面上会产生一个快捷方式 双击就会进入mongoDB图形化界面工具

MMDetection

什么是MMDetection MMDetection实际上是一个用于目标检测的工具包,面向深度学习时代的。 任务支持 目标检测 实例分割 覆盖广泛 440个预训练模型 60篇论文复现 常用学术数据集 算法丰富 两阶段检测器 一阶段检测器 级联检测器 无锚框检测器 Transform…

【HTML 基础】介绍

文章目录 定义作用基本概念1. 标签(Tags)2. 元素(Elements)3. 属性(Attributes)4. 文档结构 总结 HTML(HyperText Markup Language)是构建世界各地互联网页面的基本构建块之一。作为…

BIOS与CMOS的区别

在日常操作和维护计算机的过程中,常常可以听到有关BIOS设置和CMOS设置的一些说法,许多人对BIOS和CMOS经常混为一谈。下面介绍一些BIOS设置和CMOS设置在基本概念上的区分与联系。 BIOS是什么? 所谓BIOS,实际上就是微机的基本输入输出系统&…

实现上下文初始化参数

实现上下文初始化参数 问题方案 要解决上述问题,需要执行以下任务: 创建Web应用程序。创建检索初始化参数的servlet。指定初始化参数。构建Web应用程序。访问servlet。1. 创建Web应用程序 要使用NetBeans IDE创建Web应用程序,需要执行以下步骤: 选择“开始”→“所有程序”…

MySQL-进阶-SQL优化

一、insert优化 插入大量数据 二、主键优化 1、数据组织方式 2、页分裂 3、页合并 4、逐渐设计原则 三、order by优化 四、group by优化 五、limit优化 六、count优化 七、update优化

如何通过 Nginx 反向代理提高网站安全性和性能?

如何通过 Nginx 反向代理提高网站安全性和性能? 引言Nginx 反向代理的基本原理什么是反向代理?反向代理的工作方式反向代理的好处 配置 Nginx 反向代理的基本步骤1. 安装 Nginx2. 编辑 Nginx 配置文件3. 设置反向代理配置4. 测试并重启 Nginx 提高安全性…

函数式接口当参数使用

如果函数式接口作为一个方法的参数,就以为着要方法调用方自己实现业务逻辑,常见的使用场景是一个业务整体逻辑是不相上下的,但是在某一个步骤有不同的逻辑,例如数据处理有不同的策略。上代码 package com.dj.lambda;import java.…

Docker Image(镜像)

Docker镜像是什么 Docker image 本质上是一个 read-only 只读文件,这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器。image 里面…

Nestjs 全局拦截器

一、拦截器 拦截器作用: 在函数执行之前、之后绑定额外的逻辑转换函数的返回结果转换从函数抛出的异常扩展基本函数的行为根据所选条件重写函数 期望接口返回一个标准的json格式,利用拦截器对数据做全局的格式化 {code: "200",data: [],mess…

Nginx解析漏洞(nginx_parsing_vulnerability)

目录 Nginx解析漏洞 环境搭建 复现 漏洞利用 Nginx解析漏洞 NGINX解析漏洞主要是由于NGINX配置文件以及PHP配置文件的错误配置导致的。这个漏洞与NGINX、PHP版本无关,属于用户配置不当造成的解析漏洞。具体来说,由于nginx.conf的配置导致nginx把…

在JavaScript中创建自定义错误

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ 目录 ✨ 前言 ✨ 正文 简介 创建自定义错误 自定义错误属性 instanceof 检…

C#实现对任意区域任意大小的截图

1,目的: 实现类似系统截图工具那样对屏幕任何区域自定义大小的截图。 2,效果展示: 点击截图 选择需要截图的区域: 区域选择完成后,单击右键完成截图: 在合适的载体上粘贴截图: 3,…

【笔记】顺利通过EMC试验(1-15)-视频笔记

目录 视频链接 P2:电子设备的电磁兼容性要求 P3:怎样分析一个电磁兼容的问题 P4:EMC试验注意事项 P5:骚扰源有什么特征 P6:什么是传导骚扰发射 P7:什么是辐射骚扰发射 P8:环路天线的辐射特性 P9:偶极天线的辐…

QT之 QDebug 调试(一)

在QT中&#xff0c;进行调试&#xff0c;则需要在头文件地方加上 #include <QDebug> 加上之后&#xff0c;在编译之后则其输出的信息则在应用程序输出那里显示信息。 其QDebug 信息调试则如&#xff1a; qDebug() << " 需要插入的信息 "…

【Linux】从C语言文件操作 到Linux文件IO | 文件系统调用

文章目录 前言一、C语言文件I/O复习文件操作&#xff1a;打开和关闭文件操作&#xff1a;顺序读写文件操作&#xff1a;随机读写stdin、stdout、stderr 二、承上启下三、Linux系统的文件I/O系统调用接口介绍open()close()read()write()lseek() Linux文件相关重点 复习C文件IO相…

南京观海微电子---如何减少时序报告中的逻辑延迟

1. 引言 在FPGA逻辑电路设计中&#xff0c;FPGA设计能达到的最高性能往往由以下因素决定&#xff1a; ▪ 工作时钟偏移和时钟不确定性&#xff1b; ▪ 逻辑延迟&#xff1a;在一个时钟周期内信号经过的逻辑量&#xff1b; ▪ 网络或路径延迟&#xff1a;Vivado布局布线后引…

网络服务综合练习

综合练习&#xff1a;请给openlab搭建web网站 网站需求&#xff1a; 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料 和缴费网站&#xff0c;基于&#xff0c;www.openlab.com/data网…

什么是跳表,Java如何实现跳表?

1. 问题引入&#xff0c;相较于有序链表我们为什么需要跳表&#xff1f; 1.1 首先我们需要了解什么是有序链表 如图&#xff1a; 每个链表存在一个指向下一节点的指针&#xff0c;如果我们要对其任一节点进行增删改&#xff0c;都需要先使用迭代器进行查询&#xff0c;找到指…