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

哪一个更好,为什么?

这个:

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

或这个:

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

第一个更好。

它与Activity API中的其他事件函数更加一致,不需要花费任何代价(您调用的代码目前没有任何操作),这意味着您不需要记住将来添加调用时的行为基类的变化。

编辑

正如黄素娥所指出的那样,我对未来基地行为的预测是成真的! FragmentActivity 需要你调用super方法。

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

FragmentActivity来源

除非在应用程序中有多个依赖于Activity子类,否则不需要调用super.onActivityResult() ,因为onActivityResult()的实现是空的(我检查了API级别15)。

你可以通过查看Activity的源代码来自己回答。

基本上它的onActivityResult(...)的实现看起来像这样…

 protected void onActivityResult(int requestCode, int resultCode, Intent data) { } 

…什么也没有。

虽然看起来默认的实现是空的,但在未来的更新中可能并不总是这样。 我会推荐使用它