- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 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/
在 Android 应用程序中,AppObservable 是否必须用于每个可观察对象? 我有一个 改造 生成的 Observable ,由 Dagger 注入(inject): public cla
我是一名优秀的程序员,十分优秀!