最近遇到个bug,在android连接蓝牙设备后,程序异常退出(仅在部分nexus设备上出现)。
从logcat发现在JNI层报了一个错(我的程序使用了JNI),
一路追上去发现程序的异常是因为activity的onDestroy被调用了。
这就好办了,肯定是因为设备连接后,触发了configChange,而程序又没有正常处理这种情况。
检查了一下AndroidManifest.xml,发现activity的configChanges属性为
android:configChanges="fontScale|keyboard|keyboardHidden|locale|orientation|screenLayout|uiMode|screenSize"
几乎包含了所有的configChanges,除了mcc, mnc, touchscreen, navigation, smallestScreenSize和layoutDirection。
其中mcc和mnc理论上不可能发生变化,因为我压根儿就没挪地儿;