Android Dexter 分析

android 6.0出现之后,有了很多特性,其中就是增加了权限检测,一旦你SDKVersion适配到23,权限稍微不注意就会造成应用奔溃,使用起来逻辑复杂,并且代码多,觉得网上肯定有相关优秀权限优化项目。于是找到Dexter
  • Dexter 使用起来简单

    • 第一 :在Application 初始化 Dexter.initialize(this);
    • 第二 :


      Android Dexter 分析_第1张图片
      权限检测申请地方
  • 使用下来感觉,权限申请,最好不要在每个Activity都进行权限申请,可以在欢迎界面一次申请完全,在使用到权限的方法中在进行申请(Dexter在你有权限的时候,会直接回调PermissionGranted);
  • 使用之后也感觉到好奇,有个小疑问就是Android 官网 提供的方法,我们在检测权限的时候步骤
    • 调用请求检测权限方法


      Android Dexter 分析_第2张图片
      Paste_Image.png
  • 重写 Activity 的onRequestPermissionsResult (类似于onActivityResult) 然后在方法里,处理权限检测的结果

  • But 我们是可以在一个线程中调用Dexter,它是怎么接受到权限检测结果的

  • 采用Debug 代码模式 ,一步一步查看Dexter 执行步骤,发现


    Android Dexter 分析_第3张图片
    这是一个透明的不接受触控的控制器
Android Dexter 分析_第4张图片
Dexter的作者的聪明之处
  • Dexter的思路是,在检测权限的时候,开启一个完全透明的Activity,在其中申请权限并回掉到使用的地方,但是使用的时候,请注意,在使用线程检测权限的控制器未回调的时候,不要过早关闭控制器,会造成检测权限回调用失败。

  • Dexter源代码看着很简单(嗯,差别就在于你有这样的思维),之所以写下这个理解,那是因为 我想养成写的习惯。

你可能感兴趣的:(Android Dexter 分析)