App在自己界面奔溃回到首页,状态栏沉浸式消失bug

在Android应用开发中,当子界面奔溃返回主页时,发现状态栏的沉浸式效果消失,变为黑色。分析原因是因为奔溃时未调用BaseActivity中的onCreate方法来设置状态栏颜色。通过重写Activity的onDestroy方法并在其中调用修改状态栏的方法,成功解决了这个问题。
摘要由CSDN通过智能技术生成

开发中遇到,在apk内部子级界面操作,遇到奔溃,应用回到主页,初始状态栏都是与整个应用的主题色一样的,奔溃后,主页状态栏沉浸式消失,显示系统的黑色

思考:修改状态栏的方法我是在BaseActivity中的onCreate方法中调用的
这里写图片描述

众所周知,onCreate方法是在界面初始化时调用所以奔溃时,必然没有调用这个方法,根据以往经验,可以看这篇文章《Android学习之Activity深入》可知,在奔溃时,Activity会回调onRestoreInstanceState方法,所以在BaseActivity之中重写了该方法,在方法中调用修改状态栏的方法
这里写图片描述

ok,问题解决。

附上状态栏方法代码

protected void ChangeStatusBarCompat(boolean isDark, int bgColor) {
        if (Constants.barHeight > 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT /*&& Build.VERSION.SDK_INT <Build.VERSION_CODES.M*/) {
            switch (getBrand()) {
                case 1:
                    BrandCustomizationUtils.setMIUIStatusBarColor(this, isDark);
                    StatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.color_trans_white));
                    break;
                case 2:
                    BrandCustomizationUtils.setFlyMeStatusBarColor(this, isDark);
                    StatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.color_trans_white));
                    break;
                default:
                    if (bgColor != -1)
                        StatusBarCompat.compat(this, bgColor);
                    else
                        StatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.c_efeff0));
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值