哪一个更好,为什么?
这一个:
@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()
...
}
答案 0 :(得分:41)
第一个更好。
它与Activity
API中的其他事件函数更加一致,它不需要任何费用(您调用的代码目前没有任何功能),这意味着您无需记住添加在基类的行为发生变化时调用。
修改强>
正如Su-Au Hwang指出的那样,我对未来基类行为的预测已经成真! FragmentActivity
要求您在super
上调用该方法。
答案 1 :(得分:24)
如果您正在使用支持包中的FragmentActivity(也是SherlockFragmentActivity),则应调用super.onActivityResult。否则没有必要,但是为了它,我只是插在那里。检查FragmentActivity的来源(没有onActivityResult不为空)。
答案 2 :(得分:3)
除非您的应用程序中有多个Activity
子类依赖于它,否则看起来不需要调用super.onActivityResult()
,因为onActivityResult()
的实现是空的(I检查API级别15)。
答案 3 :(得分:2)
您可以通过查看Activity的源代码来自行回答。
基本上onActivityResult(...)
的实现看起来像这样......
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
......所以什么也没做。
答案 4 :(得分:2)
虽然默认实现似乎是空的,但未来的更新可能并非总是如此。我建议使用它
答案 5 :(得分:1)
现在必须调用 super。它抛出“覆盖方法应该调用 super.onActivityResult”错误。添加 super 不会损害您的代码。