说明:
上篇文章说明了如何简化在activity中简化权限申请
简化Activity权限申请的方法_微澜-的博客-CSDN博客
但是,如何在fragment中申请权限呢?以前可以直接使用Fragment子类调用requestPermissions函数,但现在已经是过时方法了 @Deprecated
同样onRequestPermissionsResult也过时了。
而且重要的一点是,在fragment中调用requestPermissions,fragment中的onRequestPermissionsResult函数根本就不会调用。
ActivityCompat.requestPermissions(activity, PERMISSIONS, REQUEST_CODE_PERMISSION);
这就需要从activity的onRequestPermissionsResult函数中调用其fragment的处理函数。
解决方案:
承接上文,加入处理fragment的权限请求。
简化fragment的权限请求,只需要调用一条语句就可完成,
public class PermissionFragment extends PermissionBaseFragment {
步骤:
创建Fragment的基类,进行请求和响应
需要在关联的PermissionBaseActivity中添加额外的处理
public class PermissionBaseActivity extends BaseActivity {
画出的部分就是查看下哪个Fragment需要进行权限处理。观察PermissionBaseActivity
和PermissionBaseFragment的内联接口实例permissionResult,用完之后
permissionResult=null,不会出现两个地方同时处理权限的问题。
总结:
以上就是自己对Fragment权限处理流程的说明。
参考:
参考网友的文章在Fragment申请权限无法回调onRequestPermissionsResult方法_yangjzhong的博客-CSDN博客
关于:
qq:9611153 微信lgs9611153