大家好,又见面了,我是你们的朋友全栈君。
今天在做权限申请,写完后,发现点界面上任何东西都无法响应,整个界面处于卡死状态。
查看Log,onResume和onPause在不停的执行,debug排查发现是因为请求权限导致的。
由于考虑到权限必须获得,否则没法去读取数据和开启功能,所以就想着放在onResume里。
请求权限相当于打开了一个请求权限界面,app会先执行onPause,如果有多个权限申请,
点了允许,生命周期会执行onRequestPermissionsResult onResume,这时会把请求权限代码又执行一遍,然后再跳到请求权限界面,生命周期又会走onPause onRequestPermissionsResult。这样在最后一次你点了允许后,开始陷入一个无限循环之中。
onResume
onPause
onRequestPermissionsResult
不停的执行…
知道问题所在,那改起来就方便了,要么加flag判断,要么不在onResume里执行
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136988.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...