gpt4 book ai didi

android - 如何使用 Dagger 异步提供对象?

转载 作者:行者123 更新时间:2023-11-30 01:29:09 26 4
gpt4 key购买 nike

我正在使用 Dagger1,并且有一个笑话列表。在我的 AwesomeJokeModule 中,我提供了一个列表。该列表由 JokeDataLayer.getJokeCache() 提供。问题是,如果尚未建立缓存,则 getJokeCache() 方法会访问数据库以获取大量笑话。这可能需要一段时间,并且在将我的笑话注入(inject)我的 Activity 时,这可能会导致速度变慢,因为笑话是我的 Activity 的成员。将成员异步注入(inject) Activity 之类的最佳方法是什么?

我想到的一些事情是,如果尚未构建缓存,则立即返回一个空列表,然后以某种方式尝试传达缓存已更新?但感觉就像我在绕过 Dagger/DI。有什么建议或方法吗?

最佳答案

这是 Lazy<T> 的位置是为了。考虑使用 LAZY INJECTION

class GridingCoffeeMaker {
@Inject Lazy<Grinder> lazyGrinder;

public void brew() {
while (needsGrinding()) {
// Grinder created once on first call to .get() and cached.
lazyGrinder.get().grind();
}
}
}

lazyGrinder对象只会在您需要使用它时被初始化。

关于android - 如何使用 Dagger 异步提供对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36003820/

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