android - 更改 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
,但我看不到任何优雅的方式来处理它或在定义后更新查询。有没有办法在定义后重新定义我的查询?
解决方案
推荐阅读
- html - 如何修复此 WCAG 错误“此表单控件具有空白标签或标题。”
- oracle - Oracle sql developer 触发器错误 ORA-04088: 执行触发器 'SYSTEM.LRES_PROTOKOLL' 期间出错
- c# - 从特定节点构建树
- ffmpeg - 使用 puppeteer 对页面进行截图,并使用 ffmpeg 从截图图像中生成视频。如何制作流畅的视频?
- postgresql - 如何使用卷从 docker 中的转储或 sql 文件中恢复数据库?
- xamarin - Xamarin Forms Navigation.PushAsync 仅工作一次
- trim - 删除第一个前导零
- apache - 本地主机拒绝连接。即使重启后我也无法访问本地主机
- angular - primeNG过滤不过滤数据
- c# - SQL 语句中的语法错误问题