2

在 android 应用程序中,AppObservable是每个 observable 必须的吗?

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

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

在这个例子中

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

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

此外,如果我不直接注入 Observable ,而是注入an Object containing an Observable

@Inject
CachedValue<User> cachedUser;

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

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

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

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

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

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

非常感谢 。

4

1 回答 1

3

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

如果您检查AppObservable 源代码,很明显 AppObservable 有助于确保在已销毁/分离后不会将任何项目转发到片段。

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

也可以看看:

于 2015-02-26T05:01:36.140 回答