现象:
- 机型 华为P10 华为机型可以设置底部虚拟按键(即底部导航栏,且其导航栏还存在隐藏按键)
- 两个 A_Activity 和 B_Activity,在Activity中显示导航栏,然后进入B_Activity。在B_Activity中隐藏导航栏后finish,此时会出现闪退。查看log日志,无error异常抛出。
定位问题:
- 在error级的log无法定位问题后,切换到warn,发现如下报错: 其关键 updateSurfaceStatusWindowStateAnimator
Exception thrown when updateSurfaceStatusWindowStateAnimator{62aa4ae cn.fmsyjhgb/cn.fmgbdt.activitys.broadcast.RadioListActivity}: android.os.DeadObjectException
解决方法:
- 在AndroidManifest 的Activity设置如下属性
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
- 然后在Activity 中重写onConfigurationChanged() 方法:
/**
* onConfigurationChanged事件并不是只有屏幕方向改变才可以触发,其他的一些系统设置改变也可以触发,比如打开或者隐藏键盘
* @param newConfig
*/
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
PrintLogUtil.log("<<onConfigurationChanged>>");
}
参考:
blog.csdn.net/lkk79047014…