2012-07-31 6 views

Antwort

33

Der erste ist besser.

Es ist konsistenter mit anderen Ereignisfunktionen in der Activity API, kostet Sie nichts (der Code, den Sie anrufen, tut im Moment nichts), und es bedeutet, dass Sie nicht daran denken müssen, den Anruf in hinzuzufügen Zukunft, wenn sich das Verhalten der Basisklasse ändert.

bearbeiten

Als Su-Au Hwang, über das Verhalten der Basisklasse Wechsels meine Vorhersage in der Zukunft wahr ist gekommen, hat darauf hingewiesen! FragmentActivityerfordert Sie die Methode auf super aufrufen.

+5

wenn Sie FragmentActivity von der Support-Paket verwenden, haben Sie super zu nennen, ist meine Antwort zu sehen. –

3

Sofern Sie mehrere Subklassen von Activity haben, die auf sie in Ihrer Anwendung ab, es sieht nicht super.onActivityResult() benötigt wie der Aufruf, seit der Implementierung von onActivityResult() ist leer (Ich überprüfte API-Ebene 15).

2

Sie können dies selbst beantworten, indem Sie den Quellcode für Activity betrachten.

Im Grunde ist es die Umsetzung von onActivityResult(...) wie folgt aussieht ...

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

... also nichts tut.

2

Obwohl es scheint, dass die Standardimplementierung leer ist, ist es möglich, dass in zukünftigen Updates das nicht immer der Fall ist. Ich würde empfehlen, es zu verwenden

20

Sie sollten super.onActivityResult aufrufen, wenn Sie FragmentActivity aus dem Support Package verwenden (auch SherlockFragmentActivity). Sonst ist es nicht notwendig, aber ich würde es nur dafür einstecken. Überprüfen Sie die Quelle von FragmentActivity (no onActivityResult ist nicht leer).

FragmentActivity source

Verwandte Themen