StartActivityForResoult
使用场景
以指定的请求码启动Activity,而且程序将会等到新启动Activity的结果。用于标识请求来源
实际情况
在6.0+权限适配时,用户拒绝权限之后,需要跳转到设置界面,返回时需要判断用户有没有开权限。
如果在onResume中写的话,onResume会执行多次,就要添加变量进行判断,很麻烦。
这时如果使用StartActivityForResoult跳转到设置界面,就能明确方法知道是从设置界面返回的了,这就是很好的一个切入点。
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + activity.getPackageName()));
activity.startActivityForResult(intent,111);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("===","requestCode");
if (requestCode == 111){
requestPermission();
}
}