Android 应用详情中修改权限后应用崩溃

当在Android应用详情中修改权限后,如果页面包含Fragment且无空构造函数,可能导致应用崩溃。问题源于onCreate()方法中savedInstanceState不为空。解决方案是在onCreate()中检查并移除特定的bundle键值,防止因权限变更引起的数据异常。通过打印不同情况下的savedInstanceState信息,可以确认问题所在并修复。

Android 应用详情中修改权限后应用崩溃

一 问题描述

在有fragment(没有空构造函数、或者私有空构造)的页面,应用进入后台,手动进入应用详情修改应用权限,重新打开应用,应用崩溃

二 问题排查

1、经网络查询得知后台修改应用权限后,重新进入页面,onCreate方法中savedInstanceState不为空。
2、在没有启用fragment情况下后台修改权限,进入应用,打印onCreate方法中savedInstanceState的信息。
3、复现问题流程,打印onCreate方法中savedInstanceState的信息。

没有启用fragment的savedInstanceState信息
没有启用fragment的信息

启用fragment后的savedInstanceState信息启用fragment后的信息

三 解决方案

  override fun onCreate(savedInstanceState: Bundle?) {
        if (savedInstanceState != null) {
            savedInstanceState.remove("android:support:request_fragment_who")
            savedInstanceState.remove("android:support:fragments")
            savedInstanceState.remove("android:support:request_indicies")
            savedInstanceState.remove("android:support:next_request_index")
        }
        LogUtils.e(savedInstanceState)
        super.onCreate(savedInstanceState)
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值