У меня есть объект 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
или чего-либо связанного с ним, но я не вижу никакого изящного способа избавиться от него или обновить запрос, как только он будет определен.Есть ли способ переопределить мой запрос после его определения?