我有一个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
,但我看不到任何优雅的方式来处理它或在定义后更新查询。有没有办法在定义后重新定义我的查询?