Android蓝牙扫码连接时,防止Activity重启

  集成了一个蓝牙的扫码枪,发现每次连接时,应用的当前Activity会销毁再次创建。调试了下, 没有监听到任何的事件,非常困惑。搜了一阵了解到是Android的一个机制。

  某些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性,以及当用户启用多窗口模式时)。发生这种变化时,Android 会重启正在运行的 Activity。

  如果应用在特定配置变更期间无需更新资源,并且因性能限制您需要尽量避免 Activity 重启,则可声明 Activity 自行处理配置变更,从而阻止系统重启 Activity。

  因此在清单文件 对应的Activity中增加属性 android:configChanges

  该属性含义:

  列出 Activity 将自行处理的配置变更。在运行时发生配置变更时,默认情况下会关闭 Activity 并将其重启,但使用该属性声明配置将阻止 Activity 重启。相反,Activity 会保持运行状态,并且系统会调用其 onConfigurationChanged() 方法。 

  修改如下:

AndroidManifest.xml
<activity
....
android:configChanges="keyboard|keyboardHidden"
....

  从而忽略键盘配置变化。更多信息见官方https://developer.android.com/guide/topics/resources/runtime-changes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值