Rob*_*oux 8 android android-permissions
当我使用时onRequestPermissionsResult(),保留 super 方法有用吗?
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
Run Code Online (Sandbox Code Playgroud)
如果我们看一下 super 方法
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
mFragments.noteStateNotSaved();
int index = (requestCode >> 16) & 0xffff;
if (index != 0) {
index--;
String who = mPendingFragmentActivityResults.get(index);
mPendingFragmentActivityResults.remove(index);
if (who == null) {
Log.w(TAG, "Activity result delivered for unknown Fragment.");
return;
}
Fragment frag = mFragments.findFragmentByWho(who);
if (frag == null) {
Log.w(TAG, "Activity result no fragment exists for who: " + who);
} else {
frag.onRequestPermissionsResult(requestCode & 0xffff, permissions, grantResults);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不太明白 super 方法的意义,也许只是为了日志?
我可以安全地删除所有地方的 super 方法吗?
当您处理super方法时,请通过查看其源代码来检查它正在做什么。(Ctrl + 单击)。
onRequestPermissionsResult在您的情况下,该类FragmentActivity( 的父类)的方法AppCompatActivity具有将结果转发到其片段的代码。所以如果你需要片段中的结果,这是必要的,否则你可以删除 super 调用。此外,如果您直接Activity在活动中使用类,则可以将其删除。
Fragment在方法onRequestPermissionsResult没有主体的情况下。所以你可以删除 super 调用。
| 归档时间: |
|
| 查看次数: |
5396 次 |
| 最近记录: |