我正在使用反应式框架的android项目。我有一个带有数据成员的对象,该对象可以根据使用输入(例如“名称”)更改其值。我需要侦听此变量的更改,因此我正在为其创建行为主题。但是,在代码的某些部分中,我只需要说一次值,比如说要在单击按钮时弹出一个警报,我只需要显示一次,而不管它是否更改。我不知道将这个值作为行为主题并在需要一次访问它时让它吸气是否是一件好事,我宁愿拥有一个或另一个,并且我需要倾听变化,所以我必须有行为主题。同时,似乎必须注册,获取最后一个值并在获取该值后立即注销,这似乎是一种过大的杀伤力。有什么建议么?
最佳答案
您始终可以使用take(1)
或similar来获取所需的值并立即终止订阅。这将保留提供者的公共API或任何来自更清洁的Observable / Subject的地方,因为不会有其他获取方法。由于您不需要同时更新Observable和getter实施,因此这可能会使将来对提供程序的更改更加容易。