Nach dem Aktualisieren des SDK auf API-Ebene 23 habe ich festgestellt, dass onAttach (Activity activity)
veraltet ist und die neue Methode ist onAttach (Context context)
. Kann mir jemand erklären, warum diese Änderung vorgenommen wurde?Warum ist onAttach (Aktivitätsaktivität) veraltet?
Antwort
Ich denke es ist im Grunde gewesen, den Umfang der Methode zu erweitern, aber die offizielle changelog sagt nichts darüber.
Wie Sie im Changelog sehen können, haben sie die void onAttach(Activity)
entfernt, aber sie haben eine neue mit dem gleichen Namen hinzugefügt, und es heißt, dass in der veraltet ist.
Als richq kommentiert, die support version of Fragment auch deaktiviert onAttach (Activity) und hat eine onAttach (Context), die stattdessen auf allen Android-Versionen direkt zurück zu prähistorischen verwendet werden kann.
auf diese neue Veränderungen anzupassen Sie diese Schritte folgen:
Ändern Sie den Argumenttyp von onAttach Rückruf
Activity
-Context
. Aus unbekannten Gründen führt diese Änderung dazu, dass die MethodeonAttach(Context)
während des Fragmentlebenszyklus nicht mehr aufgerufen wird.Verschieben Sie den Code, der in
onAttach
Methode waronCreate
eins, da es noch ausgeführt wird.
Mit dieser Änderung wird die App wie zuvor ausgeführt. Es sind keine zusätzlichen Importanweisungen erforderlich.
Bis zu dieser Änderung konnte ein Fragment nur an eine Aktivität angehängt werden. Nach dieser Änderung kann Google auch daran arbeiten, Fragmente an Services anzuhängen. So wie Facebook-Chat-Köpfe funktionieren, könnte das Fragment auch außerhalb einer Aktivität schweben.
- 1. Warum ist GenFsm veraltet?
- 2. Warum ist TSD veraltet?
- 3. Warum ist org.hibernate.cache.Cache veraltet?
- 4. Warum ist TabListener veraltet?
- 5. Warum ist isascii() veraltet?
- 6. Warum ist JButton.enable veraltet?
- 7. Warum ist body.scrollTop veraltet?
- 8. Firefox Erweiterung page-mod onAttach ist langsam
- 9. Warum ist der LayoutAlgorithm.SINGLE_COLUMN von WebView veraltet?
- 10. Warum ist bindToController in Typescript veraltet?
- 11. Warum std :: function :: Argumenttyp ist veraltet?
- 12. Warum ist das Rails Inflator-Modul veraltet?
- 13. Warum ist MutableString in Python veraltet?
- 14. Warum saveOrUpdateAll im Frühjahr veraltet ist HibernateOperations
- 15. Warum ist die fgets-Funktion veraltet?
- 16. Warum ist weakMap clear() Methode veraltet?
- 17. Warum ist die Konstante HTTP.UTF_8 veraltet?
- 18. Ist XmlReader.ReadString veraltet oder veraltet?
- 19. ++ ist veraltet -
- 20. Warum context2d.backingStorePixelRatio veraltet?
- 21. Warum struts2 FilterDispatcher veraltet?
- 22. onAttach (Aktivität) veraltet: Hier kann ich prüfen, ob die Aktivität die Callback-Schnittstelle implementiert
- 23. android.support.v7.app.ActionBarActivity ist veraltet
- 24. Warum wurde std :: strstream veraltet?
- 25. PostMethod setRequestBody (String) veraltet - warum?
- 26. dismissmodalviewcontrolleranimated ist veraltet zuerst veraltet in ios 6
- 27. UILineBreakModeTailTruncation ist veraltet
- 28. NUnit.Framework.Assert.IsInstanceOfType() ist veraltet
- 29. XmlValidatingReader-Klasse ist veraltet
- 30. disconnectModalViewControllerAnimated ist veraltet
Die [Unterstützungsversion von Fragment] (https://developer.android.com/reference/android/support/v4/app/Fragment.html#onAttach%28android.content.Context%29) gibt auch aufAttach (Activity) und hat einen onAttach (Context), der stattdessen auf allen Android-Versionen bis hin zu prähistorischen verwendet werden kann. – richq
Ich werde die Antwort mit Ihrem Kommentar bearbeiten, weil ich es sehr nützlich gefunden habe. – arodriguezdonaire
"Ändern Sie den Argumenttyp von' onAttach' Callback von 'Activity' in' Context'. Aus unbekannten Gründen führt diese Änderung dazu, dass die Methode 'onAttach (Context)' nicht mehr während des Fragmentlebenszyklus aufgerufen wird. " Das verwirrt mich - wolltest du sagen "OnAttach (Aktivität)" wird nicht mehr während des Fragmentlebenszyklus aufgerufen? – stkent