-
问题原因:
程序运行过程中,申请权限和拒绝权限都不会出现问题。但是,在程序运行过程中,比如进入某个页面,然后点击home键,在设置中,选择该应用,关闭某个权限,再返回该应用,点击back键,会出现闪退的情况,跟踪log,发现是某个字段变成了Null,刚开始以为程序问题,后来调试时发现,在设置修改权限以后,程序进程变成了dead -
解决方案:
在一个Activity的基类的onCreate方法中,判断savedInstanceState是否为null,如果为null,说明是正常启动;如果有数据,就是设置被修改,异常关闭情况下,程序会保存一些数据,所以在有数据的情况下(同时判断权限是否被禁止,防止其他情况导致应用被异常关闭),重新打开启动页,获取权限。
- 需要了解权限获取的伙伴,请阅读: Android 6.0运行时权限详解
网友评论