首页 > 解决方案 > Android:领域数据库从数据库中删除前N条记录后的所有记录

问题描述

我已将 Realm android 集成到我的项目中。我想保持我的表限制以存储最多 100 条记录。如果有任何新记录出现,则检查其限制是否增加到 100,然后它应该删除这些记录 (101..N)。该表应仅包含最后 100 条记录。

任何帮助都将是可观的。

提前致谢!

标签: androidsqliterealmrealm-mobile-platformandroid-database

解决方案


没有自动的方法可以做到这一点。但是,如果您在模型类中添加时间戳(例如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);


推荐阅读