gpt4 book ai didi

java - 即使在调用 RemoveObserver 之后,Livedata 仍会继续观察

转载 作者:太空狗 更新时间:2023-10-29 15:40:04 24 4
gpt4 key购买 nike

RemoveObserver 以及 RemoveObservers 不工作。感谢一些帮助,为什么即使我在一次调用后删除了观察者,它也会被调用。

public class ABC extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {

......

db.informationModel.getUserDetails().observe(this, new
Observer<UserDetailEntity >() {

@Override
public void onChanged(@Nullable UserDetailEntity
userDetailEntity) {
..... some Code

db.informationModel.getUserDetails().removeObserver(this);

}

最佳答案

看起来每次您调用 db.informationModel.getUserDetails() 时代码都会打开单独的数据流。

您需要做的是 - 将 Observable 单独存储在一个变量中。然后对其调用 observe() 和 removeObserver() 方法。

代码是这样的

public class ABC extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {

......
final LiveData<UserDetailEntity> userDetailObservable = db.informationModel.getUserDetails();
userDetailObservable.observe(this, new Observer<UserDetailEntity >() {

@Override
public void onChanged(@Nullable UserDetailEntity userDetailEntity) {
..... some Code

userDetailObservable.removeObserver(this);

}
}
}

关于java - 即使在调用 RemoveObserver 之后,Livedata 仍会继续观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com