我有领域问题。领域没有取数据
findAll和findAllAsync不会从领域返回任何数据。
我正在像这样从主线程更新领域对象。
public void updatePhoto(final int ticketID) {
realm.beginTransaction();
RealmResults ticketPhotos = realm.where(TicketPhoto.class).equalTo("TicketID", ticketID).findAll();`
for (TicketPhoto ticketPhoto : ticketPhotos) {
ticketPhoto.IsModified = true;
}
realm.commitTransaction();
} '$'
同时一个后台服务每五分钟运行一次,并不断检查任何IsModified标志为true的对象。从我的后台服务(IntentService),我使用AsyncTask和doInBackground,试图获得这些IsModified记录,我假设领域应该选择这些记录并使用我的服务器进行更新。使用下面的代码从领域获取数据。
public RealmResults getTicketPhotosToSave(){
return realm.where(TicketPhoto.class)
.equalTo("IsModified", true)
.findAll();
}
当在同一张照片的活动,我保存的照片,以境界并且通过isModified标志为真想来想去,境界在后台服务未采摘的记录。但是,当我销毁应用程序并再次运行它时,服务正在选择这些记录。我不确定在这里做错了什么。
您的后台服务将保留Realm的旧版本,并且永不更新(因为它不与实际循环的活套关联) 。尝试在事务中运行您的服务逻辑。你在后台线程,所以使用'findAll()'。 (不是异步) – EpicPandaForce
我正在使用IntentService,并且每运行5分钟我都会调用wakefulcroadcastreciever。我正在实例化他们自己的Realm实例,在每个方法中我打电话给DB。 – sai
你** ** Realm实例吗?更重要的是,你偶然有'android:process =“:remote”'指定了吗?因为低于最新快照的领域,多进程通知尚未支持 – EpicPandaForce