Welche Android Fragment-Lebenszyklus-Methoden erfordern Super

9

Derzeit (Android API 17), die einzige Erwähnung von super in der Android Referenz zu Fragment ist zufällig über einige Codebeispiele (im Gegensatz zu den Android Referenz auf Aktivität , die sorgfältig notiert wo super benötigt wird).

SO schlägt vor im Internet zu suchen nach Bedarf oder Warten auf einen Absturz, um festzustellen, wo ein Aufruf von super erforderlich ist. Ich möchte SO-Benutzer bitten, ihr Wissen darüber mitzuteilen, für welche der Fragment-Lebenszyklus-Methoden ein Aufruf von super erforderlich ist.

Fragmentlebenszyklus-Methoden - Aufruf von super erforderlich

  • onAttach()
  • onCreate() - vermutlich ja, da Activity version es erfordert
  • onCreateView() - scheint ok mit oder ohne
  • onActivityCreated()
  • onViewStateRestored()
  • onStart() - vermutlich ja, da Activity version es erfordert
  • onResume() - vermutlich ja, da Activity version es erfordert

  • onPause() - vermutlich ja, da Activity version es erfordert

  • onStop() - vermutlich ja, da Activity version es erfordert
  • onDestroyView()
  • onDestroy() - vermutlich ja, da Activity version es erfordert
  • onDetach()

  • onSaveInstanceState() - vermutlich ja, da Activity version es erfordert

donfede 25.01.2013, 23:54
quelle

3 Antworten

4

Alle entsprechenden Aktivitätslebenszyklusmethoden außer onSaveInstanceState erfordern Aufrufe von super. Außerdem:

  • onAttach() - ja
  • onActivityCreated() - ja
  • onViewStateRestored() - ist keine Fragment-Methode
  • onDestroyView() - ja
  • onDetach() - ja
  • onSaveInstanceState() - von Fragment # onSaveInstanceState es sieht aus wie ein Nein

Alle Methoden, die Aufrufe erfordern, um die erste Zeile ihrer Methode in android.app.Fragment zu teilen: mCalled = true;

Auf diese Weise kann der FragmentManager überprüfen, ob mCalled wahr ist und eine SuperNotCalledException auslösen, wenn er nicht aufgerufen wird. Weitere Informationen finden Sie unter FragmentManager # moveToState , um diese Implementierung zu sehen.

    
user697495 26.01.2013, 00:15
quelle
0

Beim Generieren eines Fragments mit Eclipse hat der Methodenvorlagencode onCreateView keinen Aufruf von super.onCreateView. Auch das im Allgemeinen recht gute Buch, das von WROX veröffentlicht wurde: Android 4 Application Development vermisst es in seinem Beispiellebenszyklus-Code (es werden keine anderen Aufrufe an Super verpasst).

Natürlich könnten diese beiden Quellen falsch sein, aber die Verwendung der Eclipse-Vorlage und nicht das Hinzufügen von super.onCreateView hat mir kein Problem verursacht.

    
Steve Waring 05.08.2014 13:10
quelle
0

Ich tippe mit dem Großbuchstaben "O" anstelle des kleinen Buchstabens "o"

bedeutet: OnCreate statt OnCreate Methoden.

Es ist ein dummer Fehler, aber müssen Sie sich erinnern:)

Danke

    
sssvrock 16.02.2016 06:21
quelle

Tags und Links