gpt4 book ai didi

java - 房间 - LiveData 未触发

转载 作者:行者123 更新时间:2023-12-02 12:36:08 29 4
gpt4 key购买 nike

我正在尝试使用 Room 数据库和 LiveData。我有 ViewModels,它保存从 dao 获得的 LiveData。如果我更新Transaction ,然后LiveData<List<Transaction>>观察正常,但是 LiveData<Transaction>根本没有被观察到。这怎么可能?我做错了什么?

public abstract class Dao {
@Query("SELECT * FROM transact WHERE deleted = :value")
public abstract LiveData<List<Transaction>> allTransactions(boolean value);

@Query("SELECT * FROM transact WHERE guid = :guid AND deleted = :value ")
public abstract LiveData<Transaction> getTransaction(String guid, boolean value);

@Update(onConflict = OnConflictStrategy.REPLACE)
protected abstract void updateTransaction(Transaction transaction);
}

有类似的问题,其中提到非 @Singleton 时 Dagger 的并发症。使用了带注释的类,不幸的是这不是我的问题,即使我使用 Dagger。

最佳答案

问题出在 AppCompatActivity 内部,其中包含 ViewModelLiveData

仅针对 Fragment 调用 LiveData 观察器,而不针对 Activity 调用 LiveData 观察器。我使用了 AppCompatActivity 并实现了 LifecycleOwner 接口(interface),但正确的是实现 LifecycleRegistryOwner

鸣谢:https://issuetracker.google.com/issues/63764057

关于java - 房间 - LiveData 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45130873/

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