首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android N-在运行时更改区域设置

Android N是Android操作系统的一个版本,它引入了许多新功能和改进,其中之一是在运行时更改区域设置。

区域设置是指设备上的语言、日期、时间、货币和其他相关设置。在Android N之前,更改区域设置需要重新启动应用程序,但Android N引入了一种新的机制,允许在运行时更改区域设置,而无需重新启动应用程序。

这个功能对于开发多语言应用程序非常有用。通过在应用程序中实现适当的逻辑,可以根据用户的偏好动态更改应用程序的语言和其他区域设置。这样,用户可以在不重新启动应用程序的情况下立即看到更改后的区域设置。

Android N中的运行时区域设置更改是通过LocaleList类实现的。开发人员可以使用LocaleList来获取当前的区域设置列表,并根据需要进行更改。例如,可以使用LocaleList.setDefault()方法来设置新的默认区域设置。

在应用程序中使用运行时区域设置更改的一个常见场景是多语言支持。通过在应用程序中使用字符串资源,并为每种语言提供不同的字符串值,可以实现多语言支持。然后,通过在运行时更改区域设置,应用程序可以根据用户的语言偏好显示适当的字符串。

腾讯云提供了一系列与Android开发相关的产品和服务,例如腾讯移动分析、腾讯移动推送和腾讯移动广告等。这些产品可以帮助开发人员分析应用程序的性能、推送消息和展示广告。您可以访问腾讯云的官方网站(https://cloud.tencent.com/)了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

区域设置更改和 AndroidViewModel 反面模式

在 ViewModel 中,如果要公开来自资源(字符串、可绘制文件、颜色……)的数据,则必须着重考虑 ViewModel 对象而忽视配置更改,例如区域设置更改。...当用户更改区域设置时,活动将重新被创建,但不创建 ViewModel 对象。 AndroidViewModel 是已知应用程序上下文的 ViewModel 的子类。...让我们看看跟踪器中基于此问题的示例:在系统区域设置更改时更新 ViewModel 。...如果有区域设置更改,则不会重新创建视图模型。这将导致我们的应用程序显示废弃的数据,因此只能部分本地化。...我们在以 Java 为基础的 Android 架构存储库中解决了这个问题 Java 以及在Kotlin 分支上。我们也把资源转移到 数据绑定布局。

10010

区域设置更改和 AndroidViewModel 反面模式

在 ViewModel 中,如果要公开来自资源(字符串、可绘制文件、颜色……)的数据,则必须着重考虑 ViewModel 对象而忽视配置更改,例如区域设置更改。...当用户更改区域设置时,活动将重新被创建,但不创建 ViewModel 对象。 ? AndroidViewModel 是已知应用程序上下文的 ViewModel 的子类。...让我们看看跟踪器中基于此问题的示例:在系统区域设置更改时更新 ViewModel 。...如果有区域设置更改,则不会重新创建视图模型。这将导致我们的应用程序显示废弃的数据,因此只能部分本地化。...我们在以 Java 为基础的 Android 架构存储库中解决了这个问题 Java 以及在Kotlin 分支上。我们也把资源转移到 数据绑定布局。

1.2K60

Android 6.0 权限行为变更详解

行时权限说明 Android 6.0 引入了一种新的权限模式,使得用户可以在运行 APP 的时候对一些比较敏感的权限进行管理。...对于以 Android 6.0 或者更高版本为目标平台的应用,务必在运行的时候检查和请求权限(针对一些危险权限)否则,如果直接调用相关需要特殊权限的方法的话,会导致 APP 的崩溃。...运行时请求(Android 6.0以及更高版本) 由于国内 Android 系统都是在正宗 Android 系统的基础上二次开发的,所以在这种特性的问题上会和正宗的 Android 系统有不同。...举个例子 :比如你将你开发的 APP 的 targetSDKVersion 设置为 23 以下的话,如果在原生的 Android 系统上,运行的时候是不需要运行时请求危险权限的,因为这个特性是在 API...但是如果你这样设置的话,在国内的手机上运行还是有问题的(比如小米手机)如果你没有动态申请危险权限,会导致你的 APP 崩溃,也就是说 targetSDKVersion 这个属性对国内的非原生 Android

90820

Android – Drawable 详解

请注意,可以使用PathShape和ArcShape在运行时创建自定义形状。...你可以使用鼠标来选择要拉伸的区域(使用Shift键并单击并拖动鼠标擦除区域),右侧的预览窗格将显示如何根据内部文本渲染图像。 ? 需要为可拉伸区域定义左边和上边的线。...你也可以在运行时使用代码来设置vector drawable: ImageView iv = (ImageView) findViewById(...); iv.setImageResource(R.drawable.ic_heart...运行时Drawables 我们可以通过访问具有可绘制应用的视图的背景,在我们的Java代码的运行时访问drawable。...运行时Vector Drawables 如果你在运行时使用 vector drawables或animated vector drawables,请确保使用新的AppCompatResource类而不是普通的

5.2K50

Android 12的行为变更和版本兼容思路

表现 前台服务启动限制 除少数特殊情况外,以Android 12为目标的应用程序无法在后台运行时启动前台服务。如果应用程序在后台运行时尝试启动前台服务,则会发生异常(少数特殊情况除外)。...自定义通知更改 Android 12会更改完全自定义通知的外观和行为。以前,自定义通知能够使用整个通知区域并提供自己的布局和样式。...对于定位到Android 12的应用,带有自定义内容视图的通知将不再使用完整的通知区域;而是,系统应用标准模板。...启用自定义通知更改: 改变你的应用程序的targetSdkVersion,以S使新的行为。 重新编译。 在运Android 12的设备或模拟器上安装您的应用。...搭建Android12验证环境 设置一个Android模拟器 配置Android模拟器以运行Android 12是探索新功能和API以及测试Android 12行为更改的绝佳解决方案。

4.4K10

聚焦 Android 11: Android 11 应用兼容性

最大限度地降低行为变更影响 : 我们的目标始终如一,即在您将应用的 targetSdkVersion 设置Android 11 之前,尽可能将这些变更设置为可选项,最大程度减少平台变更对应用带来的影响...更轻松的测试和调试 : 为了帮助您测试兼容性,我们将许多非兼容性变更设置为 "可关闭"。这意味着,您可以通过开发者选项或 adb 强制启用或禁用每一项更改。...动态资源加载器 : 在开发者们移除非 SDK 接口调用的同时,我们听到了来自 卓盟科技 等开发者的一个需求: 提供一个公开 API 来在运行时动态加载资源和素材。...在 Android 11 上测试 测试应用是否兼容 Android 新版本可能面临很多挑战,尤其是应用在受到多个平台变更影响的情况下。此过程中可能会出现很多问题: 如何确定应用中可能受影响的区域?...现在,您可以在运行测试的过程中,从目标设备下拉菜单中选择 多个设备 。 ? 此功能旨在帮助您在开发周期中尽早发现问题,并让您能够比较不同 Android 设备之间的差异。

1.5K10

Android Studio 4.1 发布,全方位提升开发体验

由于 Android Studio 在您检查应用时会保持实时连接,因此您也可以使用 Database Inspector 对数值进行修改,并在运行的应用中查看结果。...在 Android 模拟器 30.0.26 及更高版本中,您可以使用多种折叠设计和配置对可折叠设备进行设置设置完毕后,模拟器将提供铰链角度传感器和姿态变化信息,方便您测试应用在这些机型上的响应情况。...现在,在您添加一个方法后,可点击 Apply Code Changes 或 Apply Changes and Restart Activity 按钮将这些更改部署到正在运行的应用中。...框选 : 在 Threads 部分中,您现在可以拖动鼠标来框选一个矩形区域,并点击右上角的 Zoom to Selection 按钮 (或使用键盘快捷键 M) 来放大该区域。...所选跟踪事件内运行时间最长的实例。

3.7K20

游戏优化系列二:Android Studio制作图标教程

在运行时Android 将根据运行应用的设备的屏幕密度来使用适当的资源。...(4)在 Legacy 标签页中,查看默认设置并确认您要生成旧版、圆形和 Google Play 商店中使用的图标。...(5)(可选)在 Foreground Layer 和 Background Layer 标签页中更改每个图标的名称和显示设置: Name - 如果您不想使用默认名称,请输入新名称。...图标会显示在右侧的 Source Asset 区域以及向导底部的预览区域中。 (3)(可选)更改名称和显示选项: Name - 如果您不想使用默认名称,请输入新名称。...图标会显示在右侧的 Source Asset 区域以及向导底部的预览区域中。 (3)(可选)更改名称和显示选项: Name - 如果您不想使用默认名称,请输入新名称。

3.6K30

Android Studio 4.1发布:可直接运行安卓模拟器、支持 Dagger 导航和 TensorFlow Lite 模型

无论你的应用使用 Jetpack Room 库还是直接使用 SQLite 的 Android 平台版本,现在都可以轻松地检查正在运行的应用中的数据库和表,或运行自定义查询。...由于 Android Studio 在检查应用时会保持实时连接,因此你还可以使用数据库检查器修改值,并在运行的应用中查看这些更改。...现在,如果你添加了一个方法,可以单击 Apply Code Changes 或 Apply Changes and Restart Activity 将这些更改部署到正在运行的应用。...:在 Threads 部分中,现在你可以拖动鼠标选出一个矩形区域,然后可以点击区域右上角的 Zoom to Selection 按钮(或使用键盘快捷键 M)放大选中区域。...所选跟踪事件中运行时间最长的发生实例。 ?

4.1K30

三星折叠屏开发者设计指南揭秘

1.1 运行时配置变更 - 系统默认 折叠/展开的操作过程将触发系统向应用发送新布局的配置更改,包括smallestScreenSize, screenSize 和 screenLayout 的配置。...image 每当发生配置更改时,Android默认情况下会重启正在运行的Activity(先后调用onDestroy()和onCreate())。...1.2 运行时系统变更 - 自行处理 如果因性能限制等因素希望在不自动重启Activity的情况下处理配置更改,您需要在应用清单manifest中增加android:configChanges属性,...1.3 参考资料 请参阅Android开发者指南中的详细信息 – 运行时配置变更: https://developer.android.google.cn/guide/topics/resources...但朝任意方向拉伸普通位图可能导致缩放失真或图片倾斜,解决方案是使用九宫格位图,这种特殊格式的PNG文件可指定可拉伸的小像素区域,哪些区域不可拉伸。

4K40

android 之ViewStub

在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。...那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。...这样,就可以使用ViewStub来方便的在运行时,要还是不要显示某个布局。      ...所以当需要在运行时不止一次的显示和隐藏某个布局,那么ViewStub是做不到的。这时就只能使用View的可见性来控制了。          2....所以,如果想要控制某个View(如Button或TextView)的显示与隐藏,或者想要在运行时不断的显示与隐藏某个布局或View,只能使用View的可见性来控制。

69790

.NET 8 中 Android 资源生成的改进和变化

此外,每个Resource类都需要在运行时更新以获得正确的值。这是因为只有当我们构建最终应用程序并生成 R.txt 文件时,我们才知道每个资源的Id。...默认情况下,.NET 8 Android将 MSBuild 属性 $(AndroidUseDesignerAssembly) 设置为 true,完全关闭旧系统。...重新启用旧系统需要手动将此属性更改为 false。 新系统依赖于解析 aapt2 在构建过程中生成的 R.txt 文件。在运行 C# 编译器之前,将解析 R.txt 文件并生成新的程序集。...这向编译器发出信号,表明该程序集将在运行时被替换。(引用程序集是包含程序级 ReferenceAssemblyAttribute 的程序集。)...如果不包含.aar,在运行时将会出现资源丢失错误,例如: System.MissingMethodException: 'Method not found: int .Style.get_MyTheme

17510

Android实战技巧:ViewStub的应用

在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。...那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。...这样,就可以使用ViewStub来方便的在运行时,要还是不要显示某个布局。...所以当需要在运行时不止一次的显示和隐藏某个布局,那么ViewStub是做不到的。这时就只能使用View的可见性来控制了。 2....所以,如果想要控制某个View(如Button或TextView)的显示与隐藏,或者想要在运行时不断的显示与隐藏某个布局或View,只能使用View的可见性来控制。

21420

在VisualStudio中提供运行时和设计时支持的WPF本地化解决方案

在这种情况下,我还想: 在运行时切换区域设置——可自动更新所有得本地化元素 使用现有的可以在Visual Studio中维护的资源文件(**.resx files)。...使用代码 ObjectDataProvider自动更新 为了在更改当前区域设置时自动更新元素,我正在利用ObjectDataProvider提供的功能特性。...现在您已经有了一个新的RESX文件,您可以更改区域资源文件的资源值,这样新的区域(Resources.Fr-fr.resx)设置就添加完成了。 列举可用语言文化区域设置 ?...当您在UserControl中添加一个绑定到一个标签时,它将在运行时被正确地显示出来,在设计时(例如在Blend中),当它被自己加载时也会被正确展示。...这实际上是ODP的第二个实例,在运行时会很糟糕(因为只有App.xaml中包含的第一个实例会被更新),但在设计时很好,因为我们不会更新区域性。 问题解决了。

1.9K20

Linux 中的 15 个强大的 firewall-cmd 命令,牛牛牛!

使用 FirewallD 优于“iptables”的优点: 在运行时所做的任何配置更改都不需要重新加载或重新启动 firewalld 服务 通过将整个网络流量安排到区域中来简化防火墙管理 每个系统可以设置多个防火墙配置以更改网络环境...如何列出特定区域内的所有可用服务? 3. 如何将现有服务添加到默认区域? firewalld两种模式 1. 如何永久添加服务? 2. 如何将我的运行时设置迁移到永久设置? 端口 1....$ sudo firewall-cmd --get-default-zone Output: public 在输出中,可以看到公共区域设置为默认区域,现在让我们尝试将区域从公共更改为工作。...如何将我的运行时设置迁移到永久设置?...$ sudo firewall-cmd --runtime-to-permanent Output: success 通常,我们在运行时环境中测试所有规则,一旦规则成功运行,然后我们使用“--permanent

2.3K10

如何使用Firewalld配置Linux主机?

你可以在运行时环境中进行更改,不需要重新启动服务或守护程序。 使用firewalld D-Bus接口,服务,应用程序和用户都可以轻松调整防火墙设置。...运行时和永久配置的分离使得在运行时进行评估和测试成为可能。运行时配置仅在下次服务重新加载和重新启动或系统重新引导时有效,并将再次加载永久配置。...使用运行时环境,可以使用运行时设置这些设置只在有限的时间内有效。如果运行时配置已用于评估,并已完成且正常工作,则可以将此配置保存到永久环境中。...:firewall-command --reload 记住,更改将在重启后失效,除非你设置了永久更改。...我省略了区域,因为之前我将默认区域设置为了“home”,省略区域后将对默认(home)区域进行更改

1.9K30

Linux 中的 15 个强大的 firewall-cmd 命令,牛牛牛!

使用 FirewallD 优于“iptables”的优点: 在运行时所做的任何配置更改都不需要重新加载或重新启动 firewalld 服务 通过将整个网络流量安排到区域中来简化防火墙管理 每个系统可以设置多个防火墙配置以更改网络环境...$ sudo firewall-cmd --get-default-zone Output: public 在输出中,可以看到公共区域设置为默认区域,现在让我们尝试将区域从公共更改为工作。...如何将我的运行时设置迁移到永久设置?...$ sudo firewall-cmd --runtime-to-permanent Output: success 通常,我们在运行时环境中测试所有规则,一旦规则成功运行,然后我们使用“--permanent...”选项使它们永久化,使用上述命令一次性将所有运行时设置迁移到永久模式,如果防火墙设置无效,则只需重新加载/重新启动防火墙服务即可使这些规则在永久配置中工作。

1.9K00

Android在layout xml中使用ViewStub完成动态加载问题

三、ViewStub详细介绍 在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。...那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。...这样,就可以使用ViewStub来方便的在运行时,要还是不要显示某个布局。...所以当需要在运行时不止一次的显示和隐藏某个布局,那么ViewStub是做不到的。这时就只能使用View的可见性来控制了。 2. 想要控制显示与隐藏的是一个布局文件,而非某个View。...所以,如果想要控制某个View(如Button或TextView)的显示与隐藏,或者想要在运行时不断的显示与隐藏某个布局或View,只能使用View的可见性来控制。

1.7K31
领券