rx-java – rxjava behaviorubject delete / clear value

我有一个应用程序使用BehaviorSubject作为某些值的内存存储.如果用户登录或在用户登录期间,则根据REST API请求的结果在app start上设置此值.

但是当用户注销时,BehaviorSubject会保留旧值.有没有办法清除BehaviorSubject并强制它按需将hasValue()设为false? 最佳答案 最简洁的答案是不.

一旦Subject收到至少一个值,hasValue将始终返回true.在这些情况下通常的技巧是有一个包装类.以下是Optional的示例:

Subject subject = BehaviorSubject.<Optional<String>>create()
// add
subject.accept(Optional.of("Hello"))
// "clear" value
subject.accept(Optional.empty())

// check
subject.value.isPresent()
点赞