首页 > 解决方案 > 更改 ObjectBox LiveData 查询

问题描述

我有一个ObjectBoxLiveData在运行时设置的查询对象:

private ObjectBoxLiveData<MyObject> myObjectLiveData;
public ObjectBoxLiveData<MyObject> getMyObjectLiveData(Box<MyObject> myObjectBox, String filterTerm)
{
    if (myObjectLiveData == null)
        myObjectLiveData = new ObjectBoxLiveData<>(myObjectBox.query().equal(MyObject_.filterProperty, filterTerm).build());
    return myObjectLiveData;
}

但我还需要能够filterTerm在运行时更改。我的想法是我可以在其中创建一个private String currentFilterTerm;对象MyViewModel以查看是否需要更新 LiveData 对象中的过滤器项,但是是否有正确的方法来更新过滤器项?我担心myObjectLiveData = new ObjectBoxLiveData<>再次设置会为先前定义的或与之相关的任何内容留下内存泄漏myObjectLiveData,但我看不到任何优雅的方式来处理它或在定义后更新查询。有没有办法在定义后重新定义我的查询?

标签: androidandroid-livedataobjectbox

解决方案


推荐阅读