gpt4 book ai didi

android - Dagger2,自定义作用域模块的销毁

转载 作者:搜寻专家 更新时间:2023-11-01 07:52:38 26 4
gpt4 key购买 nike

在使用 Dagger2 时我定义了 @ActivityScope

    @Scope
@Retention(RUNTIME)
public @interface ActivityScope { }

并在Activity.onCreate()中实例化了相应的ActivityModule如下。

    mActivityComponent = DaggerActivityComponent.builder()
.activityModule(new ActivityModule(this))
.build();

通过这样做,我将模块的生命周期附加到 Activity 的生命周期。将为每个新 Activity 创建所有模块的实例。在这方面一切正常。

我的实际问题是,当 Activity 实际被销毁时​​,销毁模块组件(例如删除服务回调等)的正确/最佳方法是什么? Dagger2 本身是否为此提供了任何东西?

最佳答案

@Scope 注释提供编译时验证和模块提供程序方法,它使 Dagger2 创建一个作用域提供程序,这将允许在该特定组件内的每个范围只创建一个实例。

它实际上并没有做更多的事情,所以如果你需要显式注销你的 Activity 中的回调,那么你应该在你的 Activity 中注入(inject)这些依赖项,并在 onDestroy( )

关于android - Dagger2,自定义作用域模块的销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com