哪一个更好?为什么?是否需要在onActivityResult()中使用super.onActivityResult()?
这一个:
或本:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
// do not call super.onActivityResult()
...
}
哪一个更好?为什么?是否需要在onActivityResult()中使用super.onActivityResult()?
这一个:
或本:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
// do not call super.onActivityResult()
...
}
第一个更好。
它与Activity
API中的其他事件函数更加一致,它不会导致任何代价(您调用的代码目前不做任何操作),并且这意味着您不需要记住将呼叫添加到将来当基类的行为发生变化时。
编辑
苏金黄某已经指出的那样,我对将来的基类变化的行为预测已经成真! FragmentActivity
要求你可以拨打super
的方法。
除非你有Activity
多个子类依赖于它在你的应用程序,它看起来并不像调用需要super.onActivityResult()
,因为执行onActivityResult()
是空的(我检查了API级别15)。
你可以通过查看Activity的源代码自己回答。
基本上它的实施onActivityResult(...)
看起来像这样...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
...所以什么都不做。
尽管看起来默认实现是空的,但在未来的更新中可能并不总是如此。我会推荐使用它
如果您使用支持包(也包括SherlockFragmentActivity)中的FragmentActivity,则应该调用super.onActivityResult。否则,这是没有必要的,但是我只是为了它而插入它。检查FragmentActivity的来源(没有onActivityResult不是空的)。
如果您正在使用FragmentActivity从支持包,你必须调用超,看到我的回答。 – 2013-07-05 09:29:52