Activity生命周期与configChanges巧妙运用

最近在搞一个车载Android屏幕显示,因为需要需求添加了4G功能,以前只有WIFI功能,因为是编译的Android的源码在上边,所以在插上电话卡后开机后自动打开已有的APP,发现过了几秒钟后发现屏幕会出现一个半屏的黑框把当前APP的Activity给向上挤半个屏幕,这时APP崩溃。因为不是手机不能看到错误消息,根据putty现实的logcat信息,发现当出现识别电话卡后的黑屏时,ActivityManager会发送一条消息关于你的屏幕的物理大小。之前在app中的log打印现实activity生命周期重启了,类似于横竖屏切换,开始以为是Android源码刷机后出现的bug,但是找不出来。最后想到应该是4G的问题,一行代码解决 android :configChanges= "mcc|mnc" ,因为屏幕识别了手机卡,去更新了系统设置,使APP的Activity发生了销毁再创建,如果当前Activity中没有运行别的依赖于Activity的窗口是不会有错,但是如果有依赖的话当Activity销毁时,窗口没有依赖的Activity,所以App的窗口就会出错,程序崩溃。统计了一下configChanges的属性:mnc、mcc是电话卡找到后得到的状态。locale用户改变系统语言、keyboard用户使用了外部键盘、keyboardHidden用户外部键盘隐藏、orientation横竖屏切换、screensize屏幕大小改变等.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值