J'ai du mal à appliquer le concept d'héritage aux activités Android - par exemple.
Ma question est que, dans la typique Java, Oncreate d'Actvitya devrait être excessive - mais oncreate est plutôt un comportement comme un constructeur, même si c'est une fonction. Comment l'héritage fonctionne-t-il dans Android, en particulier WRT d'autres fonctions telles que l'onpaause (), OnResume, etc.? P>
Edit: J'ai également remarqué que l'activité a peut-être de nombreuses méthodes abstraites appelées dans son ONCREATE () dont les définitions sont fournies dans ActivityB. Comment cela fonctionne-t-il? P> ActivityA étend une activité code> et
ActivityB étend ActivityA CODE>, puis si je lance avec ActivityB, la méthode Oncreate () pour Les activités fortes> (A alors b) sont appelées. p>
3 Réponses :
Si vous avez votre activité de base, puis étendez-la comme SO Si vous étendez ensuite Ce n'est pas un constructeur, c'est une méthode qui s'appelle pour créer les activités edit: strong> Cette page sur le développeur Android Le site Web est très utile car il explique visuellement le cycle de vie d'activité Android. P> Activité Code> ->
Activité A CODE> Cela signifie que lorsque votre oncreate de
Activité A code> est appelé et vous appelez
super.oncreate (); code> the
oncreate () code> méthode de l'activité
d'origine code> est également appelée. P>
activité A code> dans
activité B code> Les appels fonctionnent comme si ... p>
activité b.oncreate () code> -
super.oncreate (); code> ->
activité A.Oncreate () code> -
Super.Oncreate () Code> ->
Activity.Oncreate () Code>. P>
code>. Si vous les étendez ensuite à partir d'autres activités code> code> Sa superclasse va être appelée via sa méthode
Super code>. Cela ne signifie pas que les activités
Activité B code> sera votre activité
créée code>. p>
Je tiens également à souligner en plus que la raison de oncreate code> au lieu du constructeur est que sur le changement d'orientation, l'objet ne doit pas être reconstruit.
ahh .. Comment ai-je manqué super.oncreate () merci beaucoup et pourriez-vous également expliquer comment les méthodes abstraites fonctionnent (j'ai modifié la question)
@AndroidLearnmachine Quelles méthodes parlez-vous?
Ce que je voulais dire, il y a des méthodes abstraites dans Activitya qui sont appelées dans l'Oncreate () d'Activity. Ces méthodes ne sont définies que dans ActivityB, comment se passe-t-elle? Sont-ils invoqués avec la définition dans ActivityB?
Si vous deviez créer des méthodes dans ActivityB et les appelez dans la méthode onCreate d'Activityb, alors si vous créez une activité d'activité (sans allonger l'activitéb), ces méthodes ne seraient pas appelées.
Oui comme une fonction de Java typique OnCreate aurait dû être héritée, mais il ne faut pas: pourquoi? - Parce que ce n'est pas juste une méthode, c'est une étape du cycle de vie. P>
afaik, l'activité n'est pas simplement une classe Java, mais c'est un type spécial de classe Java qui a son propre cycle de vie et que des stades de cycle de vie sont censés être appelés chaque fois que vous utilisez cette classe / activité même si vous avez déclarés ou non ces méthodes surcreee (), onpae () etc. est appelée à l'assurance. p>
Donc, chaque fois que l'activité de base sera créée et détruite. C'est c'est la nature. P>
Si vous avez un problème avec lequel vous pouvez essayer d'utiliser des classes abstraits, des interfaces et toute autre classe publique à avoir hérité de code commun dans votre toutes les activités. P>
Comment l'héritage fonctionne-t-il dans Android? P>
Il n'y a rien de spécial sur Android. Il fonctionne exactement comme il le devrait. P>
exemple? H3>
permet de créer une code> code> qui écoute à un
Broadcasteceiver CODE> = "https://developer.androïd.com/reference/andrroid/net/wifi/wifimanager.html#scan_results_available_action" rel = "nOfollow NOREFERRER"> scan_results_Available ).
Les fonctions si courantes sont, p>
- Enregistrer A
BroadCastraCeiver Code> dans
Oncreate () Code> LI>
- Unregister a
BroadcastraCeiver code> dans
OnDestroy () Code> Li> ol>
BASECLASS: P> blockQuote>
xxx pré> classe enfant: p> blockQuote>
xxx pré> blockquote>
esp. WRT Autres fonctions d'état? Code> Veuillez définir cette phrase. Je ne comprends pas.
+1 pour une belle question. !!