动态权限申请要考虑吗
jiangming8 opened this issue · 5 comments
jiangming8 commented
项目中用到了动态权限申请,在申请成功之后的回调里,有SDK的初始化逻辑。
问题:
1,请问这个动态权限申请能封装成任务吗?看代码,动态权限申请,要添加各种回调,还跟Activity的onRequestPermissionsResult回调有关。目前感觉不太好封装。
2,假设动态权限能封装成任务,那申请成功回调中的SDK初始化逻辑,和他算是依赖关系吗?
YummyLau commented
动态权限的申请有context的回调校验,所以不建议作为库sdk的初始化。可是也可以做,由于权限申请是需要主线程处理的,所以你的sdk初始化应该这样处理:通过阻塞一个异步task循环查询权限逻辑,当拒绝或者授权后通知异步task是否继续走或者终端。但是我觉得这样是把场景复杂化,比如支付宝美团等主流app,核心权限的授权都是启动之后,用户授权之后才开始进入初始化链开始初始化业务sdk的,这样更合理。
jiangming8 commented
“支付宝美团等主流app,核心权限的授权都是启动之后,用户授权之后才开始进入初始化链开始初始化业务sdk的”,意思是说先授权,再进行初始化吧。那这个授权的时机是什么呢?在Application的onCreate进行请求权限?那授权成功的回调也是application里面?在授权成功的回调里面,再进行初始化逻辑?
我这么理解OK吗?
YummyLau commented
@jiangming8 在splash 闪屏页面请求。
jiangming8 commented
在splash里面才开始启动初始化流程,会不会太晚了?作者您开发的APP也是在splash里进行初始化流程的吗?
YummyLau commented
大部分sdk不需要授权,授权的都是splash阻塞处理。