Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Dagger 2 ciclo de vida de un componente, módulo y alcance

He leído un montón de mensajes y tutoriales sobre daga 2:

Http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/

  • Dagger 2: Proporcionar la misma instancia entre múltiples componentes con el mismo alcance en diferentes módulos de biblioteca
  • Dagger- ¿Debemos crear cada componente y módulo para cada Actividad / Fragmento
  • Dagger2 no genera archivos "Dagger_"
  • Pruebas de la unidad Android con Dagger 2
  • Dagger 2.10 Subcomponentes y constructores de Android
  • No se puede encontrar la clase de símbolo "Generated" para Dagger 2
  • Https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2

    Http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/

    Https://github.com/konmik/konmik.github.io/wiki/Snorkeling-with-Dagger-2

    ¿Qué determina el ciclo de vida de un componente (gráfico de objetos) en Dagger 2?

    Etc.

    Pero todavía estoy confundido acerca del ciclo de vida de un componente, y cómo se relaciona con el módulo y el alcance. Quiero asegurarme de que no creo múltiples instancias de un objeto cuando sólo quiero un Singleton. Espero que alguien pueda arrojar algo de luz sobre estos:

    ¿Cuál es el ciclo de vida de un componente construido en la clase de aplicación?

    ¿Cuál es el ciclo de vida de un componente construido en la clase Actividad o Fragmento?

    Si quiero una instancia singleton de un componente, ¿debo anotar el componente con @Singleton o un ámbito personalizado y crear ese componente en la clase de aplicación?

    Si construyo un componente en la clase de aplicación, ¿significa que todas las instancias de objeto disponibles a través de este componente serán una instancia singleton en toda la aplicación hasta que la aplicación se destruya o se reinicie?

    Tengo un componente con un ámbito personalizado, digamos @ActivityScope, y construyo ese componente en una actividad, ¿se destruirán las instancias de objeto inyectadas a través de este componente automáticamente después de que se llama a onDestroy () de esta actividad?

    Una vez más tengo un componente con un ámbito personalizado, digamos @ActivityScope, y creo este componente en ActivityA y ActivityB, ActivityA y ActivityB comparten las mismas instancias de objeto de este componente o tendrán sus propias instancias del mismo objeto?

  • Firebase console: Cómo especificar click_action para notificaciones
  • Grupo de radio onclick evento no disparar, ¿cómo puedo saber cuál es seleccionado?
  • ¿Cómo funciona la aplicación "SHAREit" Android funciona técnicamente?
  • ¿Cuál es el uso de BaseColumns en Android
  • Soporte Unicode para Android
  • Adición con StringBuilder
  • One Solution collect form web for “Dagger 2 ciclo de vida de un componente, módulo y alcance”

    Cómo lo entiendo:

    Y tenga en cuenta dos cosas (cuando leí primero 1) que hizo todo más limpio para mí):

    1) Los componentes viven mientras usted lo desee o mientras la clase que creó el componente no fue destruida (como la actividad androide o el fragmento)

    2) Si no anota, proporcione métodos con anotación (debe ser lo mismo que anotación de componente) se crearán nuevos objetos cada vez que los solicite

    ¿Cuál es el ciclo de vida de un componente construido en la clase de aplicación?

    Componente incorporado en la clase de aplicación vive el tiempo que desee. Quiero decir que puedes crearlo en cualquier momento y eliminarlo en cualquier momento, siempre y cuando lo crees en la clase que extiende la clase de aplicación de Android (de esta manera el objeto componente vivirá mientras tu aplicación Android esté en ejecución) en contraste con el componente que está construido En la clase de actividad – que vivirá mientras la actividad está viva por lo que puede ser destruido por ejemplo en el cambio de orientación. Tenga en cuenta que si por alguna razón no creó su ApplicationComponent en el método onCreate () de la clase Application (por ejemplo, lo creó más tarde cuando sucedió algo) puede destruirse (nulled) cuando el sistema operativo Android tiene poca memoria y el usuario Cerró la aplicación y, a continuación, cuando el usuario vuelve a la aplicación (para que la última actividad sea visible) cuando se ha matado anteriormente y solicita que el componente de la aplicación haga algo, compruebe si no es nulo

    ¿Cuál es el ciclo de vida de un componente construido en la clase Actividad o Fragmento?

    Yo respondí parcialmente en la respuesta anterior. Si creas tu componente dentro de Fragmento / Actividad, vive tanto como quieras o mientras la actividad o fragmento no se destruya debido al cambio de orientación o memoria baja

    Si quiero una instancia singleton de un componente, ¿debo anotar el componente con @Singleton o un ámbito personalizado y crear ese componente en la clase de aplicación?

    Depende de donde quieras usar este singleton. Si desea singleton en una sola actividad, puede crear, por ejemplo, anotación @ActivityScope y anotar, proporcione métodos y ActivityComponent con esta anotación; a continuación, cree su ActivityComponent dentro del método onCreate () Activity y tendrá un singleton mientras dure su actividad (puede Ser provechoso si usted planea tener un singleton compartido entre los diversos fragmentos de la misma actividad). Si desea singleton entre diferentes acctivities / fragmento en app la mejor manera de hacerlo sería crearlo en AppModule y anotar proporcionar método y componente de aplicación con anotación singleton.

    Si construyo un componente en la clase de aplicación, ¿significa que todas las instancias de objeto disponibles a través de este componente serán una instancia singleton en toda la aplicación hasta que la aplicación se destruya o se reinicie?

    Si anota proporciona métodos con anotación @Singleton entonces sí

    Tengo un componente con un ámbito personalizado, digamos @ActivityScope, y construyo ese componente en una actividad, ¿se destruirán las instancias de objeto inyectadas a través de este componente automáticamente después de que se llama a onDestroy () de esta actividad?

    Una vez más tengo un componente con un ámbito personalizado, digamos @ActivityScope, y creo este componente en ActivityA y ActivityB, ActivityA y ActivityB comparten las mismas instancias de objeto de este componente o tendrán sus propias instancias del mismo objeto?

    Tendrán sus propias instancias

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.