我是靠谱客的博主 美满微笑,这篇文章主要介绍Android 导航栏 隐藏显示状态改变后引起的闪退问题记录,现在分享给大家,希望可以做个参考。

现象:

  • 机型 华为P10 华为机型可以设置底部虚拟按键(即底部导航栏,且其导航栏还存在隐藏按键)
  • 两个 A_Activity 和 B_Activity,在Activity中显示导航栏,然后进入B_Activity。在B_Activity中隐藏导航栏后finish,此时会出现闪退。查看log日志,无error异常抛出。

定位问题:

  • 在error级的log无法定位问题后,切换到warn,发现如下报错: 其关键 updateSurfaceStatusWindowStateAnimator
复制代码
1
2
Exception thrown when updateSurfaceStatusWindowStateAnimator{62aa4ae cn.fmsyjhgb/cn.fmgbdt.activitys.broadcast.RadioListActivity}: android.os.DeadObjectException 复制代码
  • 由此明白大致因为是动画引起

解决方法:

  • 在AndroidManifest 的Activity设置如下属性
复制代码
1
2
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout" 复制代码
  • 然后在Activity 中重写onConfigurationChanged() 方法:
复制代码
1
2
3
4
5
6
7
8
9
10
11
/** * onConfigurationChanged事件并不是只有屏幕方向改变才可以触发,其他的一些系统设置改变也可以触发,比如打开或者隐藏键盘 * @param newConfig */ @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); PrintLogUtil.log("<<onConfigurationChanged>>"); } 复制代码

参考: blog.csdn.net/lkk79047014…

转载于:https://juejin.im/post/5cb699df6fb9a068985fb02c

最后

以上就是美满微笑最近收集整理的关于Android 导航栏 隐藏显示状态改变后引起的闪退问题记录的全部内容,更多相关Android内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部