gpt4 book ai didi

android - AppObservable 是 Android 的必备品吗?

转载 作者:搜寻专家 更新时间:2023-11-01 08:45:32 25 4
gpt4 key购买 nike

在 Android 应用程序中,AppObservable 是否必须用于每个可观察对象?

我有一个 改造 生成的 Observable ,由 Dagger 注入(inject):

public class UserInfoFragment extends Fragment {
@Inject
Observable<User> user;
}

在这个例子中

我应该像这样覆盖 onViewCreated() 中的“用户”吗?

this.user = AppObservable.bindFragment(this , user);

此外,如果我不直接注入(inject) Observable,而是注入(inject)一个包含 Observable 的对象:

@Inject
CachedValue<User> cachedUser;

在 CachedValue 中,有一个 Observable(跳过其他字段):

public class CachedValue<T> {
public Observable<T> getObservable() {
return networkObservable.startWith(localObservable).take(1);
}
}

我应该用 AppObservable lifted Observable 替换这个 Observable 吗?

AppObservable.bindFragment(this , cachedUser.getObservable());

所有这些代码都在模拟器中没有 AppObservable 的情况下完美运行(我确实在 onDestroyView() 中取消了这些订阅),但我不知道在实际情况下是否足够?长时间运行后会不会有内存泄漏?

在 rx-android 的示例项目中,我到处都看到了 AppObservable。但我不知道如何正确处理注入(inject)的 Observables(或包含 Observables 的对象)。

非常感谢。

最佳答案

不,我不认为 AppObservable 是必须的。

如果你勾选AppObservable source code ,很明显,AppObservable 有助于确保在 fragment 已被销毁/分离后,不会将任何项目转发给该 fragment 。

根据我的理解,您可以在发出一个项目之前调用 isUnsubscribed 以及在 onDestroyView 中取消订阅。这应该足够了。

另见:

关于android - AppObservable 是 Android 的必备品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28733192/

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