当前位置: 首页 > news >正文

Android用户切换系统语言后,回到App,App重新加载导致的一些问题[android:configChanges=“layoutDirection“]

Android用户切换系统语言后,回到App,App重新加载导致的一些问题

可能导致的问题

App重启,Activity重新创建,业务逻辑重新执行,可能导致:

  1. 某页面,如上层的半透明页面因UI自动重建,存在1个,而后业务重新逻辑执行又创建了1个,此时存在2个相同页面;
  2. 如果在切换系统语言之前,App页面中存在一个等待交互的Dialog,则切换后回到app,将导致Dialog所attach的Activity重建,导致Dialog崩溃、闪退(此情况可以在Activity的onDestroy中销毁Dialog来解决)
  3. 因重建、重新执行业务逻辑可能导致的其它奇奇怪怪的问题。

解决方法

设置android:configChanges="layoutDirection"即可。

虽然Android官方文档(https://developer.android.com/guide/topics/manifest/activity-element#config)说明:
“layoutDirection” 布局方向发生变更 - 例如,自从左至右 (LTR) 更改为从右至左 (RTL)。 在 API 级别 17 中引入。
“locale” 语言区域发生变更 - 用户已为文本选择新的显示语言。

但是,很奇怪的是,设置locale并不起作用(测试环境targetSdkVersion 29,设备小米12 Android 11 or 模拟器api31)。

设置"layoutDirection"是有效的,Activity不会再被重建,而是回调到 onConfigurationChanged(Configuration newConfig),此时App内可酌情处理相关逻辑。

相关文章:

  • Django部署深度学习项目-1
  • JS-sort
  • Callable接口(类似于Runnable)
  • CentOS环境下安装Nacos
  • 金仓数据库 KingbaseES 插件参考手册 S (2)
  • 营销软文的结尾怎样写?营销软文结尾怎样去设计?
  • 2022河南萌新联赛第(七)场:南阳理工学院 B 龍
  • 我做了几年的Android应用层开发,为什么还要去学习安卓系统知识?
  • [暑假]Vue框架里面 一些属性和配置项的作用
  • 【unity记录】导入标准资源包(Standard Assets)
  • SoringBoot特点
  • 浅析Java设计模式【3.4】——策略
  • time,datetime模块时间序列讲解
  • Hive的JDBC操作
  • Axure8.0教程:自动带出邮箱
  • 【Leetcode】101. 对称二叉树
  • JS 中的深拷贝与浅拷贝
  • 【5+】跨webview多页面 触发事件(二)
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • ES6简单总结(搭配简单的讲解和小案例)
  • Javascript 原型链
  • k8s如何管理Pod
  • Median of Two Sorted Arrays
  • PHP 小技巧
  • Selenium实战教程系列(二)---元素定位
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue ES6 Jade Scss Webpack Gulp
  • vue脚手架vue-cli
  • 深度学习中的信息论知识详解
  • 实习面试笔记
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 数据科学 第 3 章 11 字符串处理
  • 学习ES6 变量的解构赋值
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ###STL(标准模板库)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (day 12)JavaScript学习笔记(数组3)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三)mysql_MYSQL(三)
  • (一) springboot详细介绍
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .a文件和.so文件
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET关于 跳过SSL中遇到的问题
  • .sdf和.msp文件读取
  • ::before和::after 常见的用法
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @DataRedisTest测试redis从未如此丝滑
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [Android] Android ActivityManager
  • [Android]Tool-Systrace
  • [C]编译和预处理详解
  • [C++随笔录] 红黑树