Introducción a Android Dagger2 + precauciones

dagger2s es un marco contenedor de COI (es decir, lo que hago yo mismo se convierte en un tercero).

添加 依赖 : dependencias {
    implementación 'com.google.dagger: dagger: 2.x'
    annotationProcessor 'com.google.dagger: dagger-compiler: 2.x'
}

El módulo proporciona objetos, el componente se usa para inyectar objetos y la clase / actividad usa objetos.

Ejemplo de código fuente
Clase de entidad de escritura: clase
pública Student {
}
Clase de módulo de escritura:
@Module
clase pública StudentModule {
    @Provides
    public Student providerStudent () {
        return new Student ();
    }
}
Clase de componente de escritura:
@Component (modules = {StudentModule.class })
interfaz pública StudentComponent {
    Student providerStudent ();
}
Llamada en Actividad:
clase pública MainActivity extiende AppCompatActivity {
    private static final String TAG = "DaggerActivity";

    @Inject
    Estudiante estudiante;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        DaggerStudentComponent.create (). InjectMainActivity (this);
        // StudentComponent studentComponent = DaggerStudentComponent.builder ()
// .teacherModule (new TeacherModule ())
// .build ();
// teacherComponent.injectMainActivity (this);

        Log.i (TAG, "onCreate: student =" + student.hashCode ());
    }

Nota:
Un modelo puede inyectarse en múltiples componentes.
Un componente puede inyectarse en múltiples actividades / clases.
Una actividad / clase solo puede depender de un componente; si depende de más de uno, debe agregar dependencias y pasar las dependencias disfrazadas
Singleton local: use la anotación @Singleton; la entrega de dependencias complejas puede usar un alias Singleton personalizado.
Singleton global: agregue dependencia en la aplicación personalizada para uso global.


 

31 artículos originales publicados · Me gusta1 · Visitas1159

Supongo que te gusta

Origin blog.csdn.net/quietbxj/article/details/105388003
Recomendado
Clasificación