android 必须使用 AppObservable 吗?

Is AppObservable a MUST for android?

在 android 应用程序中,AppObservable 是每个可观察对象的必须条件吗?

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

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

在这个例子中

我应该像这样覆盖 onViewCreated() 中的 'user' 吗?

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 lifted Observable 替换这个 Observable 吗?

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

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

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

非常感谢。

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

如果您勾选 AppObservable source code,很明显 AppObservable 有助于确保在 destroyed/detached.

之后不会将任何项目转发到片段

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

另请参阅: