Требуется помощь в решении непонятной проблемы
Для сортировки списка я применяю запрос Realm
@Override public List<Track> getRealmSortedTracks(boolean ascending) {
if (ascending) {
return mRealm.copyFromRealm(mRealm.where(Track.class)
.sort("distance", Sort.ASCENDING)
.findAll()
);
} else {
return mRealm.copyFromRealm(mRealm.where(Track.class)
.sort("distance", Sort.DESCENDING)
.findAll()
);
}
}
А вызывается этот код из ViewModel вот таким образом
public void loadSortedByIdTracks(boolean ascending){
// RealmRepository realm = new RealmRepository();
List<Track> sortedTracks=mRepository.getRealmSortedTracks(ascending);
mTracks.postValue(sortedTracks);
}
И после его выполнения мы получаем правильно отсортированный List sortedTracks
но после выполнения postValue ловим java.lang.IllegalStateException:
Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.
И какого МПХ это происходит я абсолютно не понимаю!!
Мне срочно нужны подсказки и советы по устранению!