是否需要在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) { }
…什么也没有。
虽然看起来默认的实现是空的,但在未来的更新中可能并不总是这样。 我会推荐使用它