Изменить ObjectBox LiveData Query - PullRequest
0 голосов
/ 28 ноября 2018

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

...