programing

onActivityResult ()에서 super.onActivityResult ()를 사용할 필요가 있습니까?

minecode 2021. 1. 15. 07:59
반응형

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()
    ...
}

첫 번째가 더 좋습니다.

ActivityAPI의 다른 이벤트 함수와 더 일관성이 있으며 비용이 들지 않으며 (호출하는 코드는 현재 아무 작업도하지 않음) 기본 클래스가 변경됩니다.

편집하다

황수 아가 지적했듯이 미래에 변하는베이스 클래스의 행동에 대한 나의 예측이 이루어졌다! 에서 메서드를 호출 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) {
}

... 아무것도하지 않습니다.


기본 구현이 비어있는 것처럼 보이지만 향후 업데이트에서는 항상 그렇지는 않을 수 있습니다. 나는 그것을 사용하는 것이 좋습니다

참조 URL : https://stackoverflow.com/questions/11745366/is-there-a-need-to-use-super-onactivityresult-in-onactivityresult

반응형