在Android 9.0的项目中,测试工程师验证问题时插入某些USB的无线鼠标,会导致当前的APK会销毁然后重启一次,重新走一次生命周期。
为什么会重启?
我们大概率的知道,一般App重启大致有如下原因:
机器状态改变了(比如改变语言),导致Activity重启了
不过,由于日志中没有异常日志,因此考虑后面一种情况。
下面是在《插入无线鼠标Android应用重启问题》
后面发现插入有问题的USB无线收发器,会生成2个设备,一个鼠标和一个键盘。没错,这是键鼠套装一体的无线收发器,正是这个键盘导致出现了现在的这个现象,而有些无线鼠标的无线收发器不是键鼠套装,所有只会有1个鼠标设备,所以插上去没有问题。
这里更加肯定了我的猜想[机器状态改变了(比如改变语音),导致Activity重启了]。
特意打印了一下Activity的生命周期的日志,发现Activity被销毁,然后重新启动了。
Android文档中有如下说明(前面《AndroidManifest.xml的configChanges配置简介》中也讲解过)
如果我们AndroidManifest.xml中的Activity中的android:c