android - Android:领域数据库从数据库中删除前N条记录后的所有记录
问题描述
我已将 Realm android 集成到我的项目中。我想保持我的表限制以存储最多 100 条记录。如果有任何新记录出现,则检查其限制是否增加到 100,然后它应该删除这些记录 (101..N)。该表应仅包含最后 100 条记录。
任何帮助都将是可观的。
提前致谢!
解决方案
没有自动的方法可以做到这一点。但是,如果您在模型类中添加时间戳(例如created
),则可以添加侦听器并删除旧对象。就像是:
realmListener = new RealmChangeListener() {
@Override
public void onChange(Realm realm) {
RealmResults<YourClass> objs;
int nObjsToDelete;
objs = realm.where(YourClass.class).sort(created).findAll();
nObjsToDelete = objs.size()-100;
objs.limit(nObjectToDelete).findAll().deleteAllFromRealm();
}
};
realm.addChangeListener(realmListener);
推荐阅读
- regex - 从命令行创建 shell 脚本有困难
- spring-mvc - 使用 @ControllerAdvice 和 @ExceptionHandler 但仍然允许默认异常映射
- php - 如何将数据插入到mysqli中的表中?
- javascript - 我试图在 scripts.js 页面上更新我的谷歌地图位置,但肯定有冲突
- python - 自动化无聊的东西中的无值/代码
- kubernetes - 自定义指标 API 服务器不在 Go 中
- webgl - 从体素获取角度我做错了什么?
- java - 更改地图的迭代顺序
- javascript - like button 什么也没做,不知道是什么问题
- javascript - 如何使用 ES6 在数组中存在的字符串中查找单词?