是否需要在onActivityResult()中使用super.onActivityResult()?

Pri*_*off 56 java android

哪一个更好,为什么?

这个:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    ...
}
Run Code Online (Sandbox Code Playgroud)

或这个:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    // do not call super.onActivityResult()
    ...
}
Run Code Online (Sandbox Code Playgroud)

hca*_*ver 48

第一个更好.

它与ActivityAPI 中的其他事件函数更加一致,它不需要任何费用(您调用的代码目前什么也不做),这意味着您不需要记住以后添加调用时的行为基类更改.

编辑

正如Su-Au Hwang指出的那样,我对未来基类行为的预测已经成真!FragmentActivity 要求您调用方法super.

  • 如果你使用支持包中的FragmentActivity,你必须打电话给super,看看我的答案. (7认同)

Su-*_*ang 26

如果您正在使用支持包中的FragmentActivity(也是SherlockFragmentActivity),则应调用super.onActivityResult.否则没有必要,但是为了它,我只是插在那里.检查FragmentActivity的源代码(没有onActivityResult不为空).

FragmentActivity源码