首页 > 其他分享 >解决Android终端设备,外接键鼠屏幕闪烁问题

解决Android终端设备,外接键鼠屏幕闪烁问题

时间:2024-10-22 13:42:25浏览次数:1  
标签:键盘 终端设备 configChanges Activity 外接键 Android 变化 屏幕

问题

前端时间开发一款Android终端设备的Launcher,在遇到外接键鼠的时候会发现屏幕会闪一下,接入有线鼠标时屏幕不会闪烁,接入键鼠套装或有线键盘时屏幕就会闪烁一下,一开始我以为是键鼠套装中含有网卡模块,插入时会触发驱动,导致Android系统会加载一下,结果不是样的,一顿GPT也没有找到合适结果。

 

原因

系统检测到键盘类型发生了改变,会关闭当前Activity并重新执行onCreate启动Activity,导致屏幕会闪烁一下。

 

解决方法

在Manifest文件中activity标签里增加configChanges属性即可:

android:configChanges="keyboard|keyboardHidden"

属性值还可以增加以下内容:

  • fontScale: 字体大小改变。
  • keyboard: 输入设备类型的变化(例如,从没有键盘到有键盘)。
  • keyboardHidden: 输入设备可见性的变化(例如,键盘弹出或隐藏)。
  • locale: 区域设置的变化(例如,语言或地区设置更改)。
  • orientation: 屏幕方向的变化(从横屏到竖屏或反之)。
  • screenLayout: 屏幕布局大小和UI模式的组合变化。
  • uiMode: UI模式的变化(如汽车模式或桌面模式)。
  • screenSize: 屏幕尺寸的变化。
  • navigation: 导航设备的变化(如从无导航栏到有导航栏)。

 

总结

当配置发生变化时,如果你声明了 android:configChanges 属性并且正确地处理了这些变化,那么你的Activity将会收到 onConfigurationChanged() 方法的回调,而不是默认的生命周期方法(如 onPause(), onDestroy(), onCreate())。所以应该在这个方法里做适当的处理来适应新的配置。

使用 android:configChanges 需要谨慎。虽然它可以防止不必要的Activity重启,但如果处理不当,可能会导致内存泄漏或其他问题。因此,必要时得在 onConfigurationChanged() 中正确处理所有声明的配置变化。

 

标签:键盘,终端设备,configChanges,Activity,外接键,Android,变化,屏幕
From: https://www.cnblogs.com/liyan-blogs/p/18492525

相关文章

  • Android猜鸡蛋游戏的设计与实现
    一、功能与要求 实现功能:设计一个猜猜鸡蛋在哪只鞋子里游戏。在UI上放置三只鞋子,单击其中的任意一只鞋子,将打开鞋子显示里面是否有鸡蛋,如果猜中,设置该图片为半透明显示,并提示信息“猜对了”,如果猜错,提示信息为“再玩一次?”。指标要求:实现UI布局;业务功能应实现鸡蛋随机显示在......
  • 基于node.js+vue基于Android的商品房验收服务平台设计与实现(开题+程序+论文)计算机毕业
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着房地产市场的不断发展,商品房的质量验收成为购房者关注的焦点。关于商品房验收的研究,现有研究主要以整体建筑质量评估、相关法律法规探讨为主 1。专......
  • 基于node.js+vue基于Android的租房平台的设计与实现(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于租房平台的研究,现有研究主要以传统租房模式或Web端租房平台为主。在移动互联网迅速发展的当下,专门针对基于Android的租房平台的研究较少。随着智能......
  • 如何远程备份Android :保护您的数据
    为了方便工作和生活,许多创新方案不断涌现。如今,许多用户希望远程备份他们的Android手机,但并非所有Android手机都支持这一功能。简单来说,Android设备中的编码是决定用户能否进行远程备份的关键因素之一。同时,这也决定了用户是否可以利用第三方软件来实现远程备份。 本文将介......
  • 了解Android中的AIDL
    Android中的AIDL及其作用一、概述在Android开发中,AIDL(AndroidInterfaceDefinitionLanguage)是一种Android特有的接口定义语言,用于实现进程间通信(IPC)。通过AIDL,开发者可以在不同的应用程序组件之间进行数据交换和通信,实现进程间的数据共享和通信。AIDL的核心目的是解决Andro......
  • 如何实现Android应用的热修复和动态更新?
    一、引言在移动互联网时代,应用的快速迭代和修复线上bug的需求日益增长。传统的应用更新方式需要用户下载新版本的应用,不仅耗时较长,还可能因为版本不兼容等问题影响用户体验。因此,热修复和动态更新技术应运而生,使得开发者能够在不重启应用的情况下,动态地替换有问题的代码和资......
  • 基于node.js+vue基于Android的星座运势查询系统(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于星座运势查询系统的研究,现有研究主要以网页形式为主,专门针对基于Android平台开发星座运势查询系统的研究较少。在国内外,星座文化都有一定的受众群体......
  • 基于node.js+vue基于Android的学生考勤APP(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于学生考勤管理的研究,现有研究主要以传统方式(如纸质签到等)为主,专门针对基于Android平台开发学生考勤APP的研究较少。在国内外,虽然考勤管理一直是教育......
  • Android 13.0 系统关于安兔兔显示信息的修改
    1.前言在13.0的系统rom定制化开发中,在一些产品开发中,对于安兔兔等第三方检测工具,检测不出某些版本的内核信息等,显示0GB等问题的相关修改,由于不知道安兔兔的检测方式,所以就需要来修改,关于文本上的一些信息了2.系统关于安兔兔显示信息的修改的核心类frameworks/base/core/jav......
  • 基于node.js+vue基于Android的儿童成长管理APP(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着信息技术的飞速发展,移动应用在各个领域得到了广泛的应用。关于儿童成长管理方面的研究,现有研究主要以传统的纸质记录或单一功能的软件为主,专门针对......