更改ObjectBox LiveData查询

时间:2018-11-28 00:52:49

标签: android android-livedata objectbox

我有一个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或与之相关的任何事情留下内存泄漏,但是我看不到任何优雅的方式来处理它或一旦定义就更新查询。定义后是否可以重新定义查询?

0 个答案:

没有答案