1,软件第一次运行时,该方法会反馈true,无论是否选择了不再询问。
2,之后,当用户没有选择不再询问,该方法会返回false。
3,之后,当用户选择了不再询问,该方法会返回true。
所以逻辑需要变成:
初始化:第一次运行=true
if( 不是第一次运行 && !shouldShowRequestPermissionRationale(任意一个请求的权限)){
//用户选择了不再弹出,使用其他方法提醒用户到什么地方去设置
//TODO
return;
}
设置第一次运行=false;
//延迟并再次申请权限,可以用其他方法延迟或不延迟
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
activity.requestPermissions(permissions, requestCode);
}
}, 500);