Comment je le comprends:
Et garder à l'esprit deux choses (quand j'ai lu 1) qu'il a fait tout un nettoyant pour moi):
1)Composants de vivre aussi longtemps que vous le souhaitez, ou aussi longtemps que la classe qui a créé le composant n'a pas été détruit (comme android activité ou fragment)
2)Si vous n'avez pas d'annoter vous fournir des méthodes avec l'annotation (doit être le même que composant d'annotation) de nouveaux objets seront créés chaque fois que vous demandez pour eux
Quel est le cycle de vie d'un composant qui est construit dans la classe d'application?
Composant intégré dans la classe d'application vit aussi longtemps que vous le souhaitez. Je veux dire que vous pouvez créer à tout moment et de le retirer à tout moment aussi longtemps que vous le créer dans la classe qui étend la classe de l'Application android de classe (de cette façon component object vivent aussi longtemps que votre Application Android est en cours d'exécution, contrairement à la composante qui est construit dans l'activité de la classe, il vivra aussi longtemps que l'activité est vivant, donc il peut être détruit par exemple sur le changement d'orientation.
Gardez à l'esprit que si pour quelque raison vous n'avez pas créé votre ApplicationComponent dans onCreate() la méthode de classe de l'Application (par exemple vous avez créé plus tard, lorsque quelque chose s'est passé), il peut être détruit (annulée) lors de l'OS Android est faible sur la mémoire et l'utilisateur a fermé votre application, et ensuite, lorsque l'utilisateur revient à votre application (à la dernière activité visible) quand il a été tué plus tôt, et vous demandez à votre application composant de faire quelque chose de vérifier ensuite si elle n'est pas null
Quel est le cycle de vie d'un composant intégré de l'Activité ou de l'
Fragment de classe?
J'ai en partie répondu dans la réponse ci-dessus. Si vous créez votre composant à l'intérieur de Fragment/Activité il vit aussi longtemps que vous le souhaitez ou en tant qu'une activité ou un fragment n'est pas détruite pour cause de changement d'orientation ou de la mémoire faible
Si je veux une instance du singleton à partir d'un composant, puis-je doit annoter
le composant avec @Singleton ou sur mesure à la portée et à bâtir
composant dans la classe d'application?
Il dépend de l'endroit où vous souhaitez utiliser ce singleton. Si vous voulez singleton dans une seule activité, vous pouvez créer par exemple @ActivityScope d'annotation et d'annoter fournir des méthodes et ActivityComponent avec cette annotation, puis vous créez votre ActivityComponent à l'intérieur onCreate() de l'Activité de la méthode et vous avez un singleton tant que votre activité vie (il peut être utile si vous prévoyez d'avoir un singleton partagé entre les différents fragments de la même activité).
Si vous voulez singleton entre les différents acctivities/fragment en application la meilleure façon de le faire serait de créer dans AppModule et annoter fournir de la méthode et de l'application de la composante avec singleton annotation.
Si je créer un composant dans la classe d'application, est-ce à dire tous les
les instances d'objet disponibles par le biais de cette composante sera un
instance du singleton tout au long de l'application jusqu'à ce que l'application est tué ou
redémarrage?
Si vous annoter fournir des méthodes avec @Singleton annotation alors oui
J'ai un composant avec une portée personnalisée disons @ActivityScope, et je
construire cette composante dans une Activité, les instances de l'objet
injectée par le biais de cette composante sera détruit automatiquement après cette
l'activité onDestroy() est appelée?
Oui
De plus, j'ai un composant avec une portée personnalisée disons @ActivityScope,
et j'ai construit ce composant dans ActivityA et ActivityB, sera ActivityA
et ActivityB partagent le même objet instances de ce composant ou
ils ont leurs propres instances du même objet?
Ils ont leurs propres instances