android 6.0出现之后,有了很多特性,其中就是增加了权限检测,一旦你SDKVersion适配到23,权限稍微不注意就会造成应用奔溃,使用起来逻辑复杂,并且代码多,觉得网上肯定有相关优秀权限优化项目。于是找到Dexter
-
Dexter 使用起来简单
- 第一 :在Application 初始化 Dexter.initialize(this);
-
第二 :
- 使用下来感觉,权限申请,最好不要在每个Activity都进行权限申请,可以在欢迎界面一次申请完全,在使用到权限的方法中在进行申请(Dexter在你有权限的时候,会直接回调PermissionGranted);
- 使用之后也感觉到好奇,有个小疑问就是Android 官网 提供的方法,我们在检测权限的时候步骤
-
调用请求检测权限方法
-
重写 Activity 的onRequestPermissionsResult (类似于onActivityResult) 然后在方法里,处理权限检测的结果
But 我们是可以在一个线程中调用Dexter,它是怎么接受到权限检测结果的
-
采用Debug 代码模式 ,一步一步查看Dexter 执行步骤,发现
Dexter的思路是,在检测权限的时候,开启一个完全透明的Activity,在其中申请权限并回掉到使用的地方,但是使用的时候,请注意,在使用线程检测权限的控制器未回调的时候,不要过早关闭控制器,会造成检测权限回调用失败。
Dexter源代码看着很简单(嗯,差别就在于你有这样的思维),之所以写下这个理解,那是因为 我想养成写的习惯。