Mam do czynienia z tym problemem na Androida:Dostęp do obszaru z nieprawidłowego wątku Android
Dostęp do obszaru z niewłaściwego wątku. Obiekty Realm mogą być dostępne tylko w wątku, w którym zostały utworzone.
chcę użyć Realm w moim RemoteViewsFactory z
public class RemoteViewsX implements RemoteViewsFactory {
public RemoteViews getViewAt(int paramInt) {
if (this.results != null && this.results.size() != 0 && this.results.get(paramInt) != null) {
//FAILED HERE
}
}
... To wywołanie nie powiodło się! Czemu ?
mogę pobrać swoje dane, takie jak to w moim klasy:
public void onDataSetChanged() {
Realm realm = Realm.getInstance(RemoteViewsX.this.ctx);
this.results = realm.where(Model.class).findAll();
}
nazwałem mój remoteFactory tak:
public class ScrollWidgetService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
return new RemoteViewsX (getApplicationContext());
}
}
Każdy pomysł?
nie jestem zaznajomiony z RemoteViewsService, ale widocznie Twój '' 'metoda onDataSetChanged''' jest wywoływana z innego wątku niż twój' '' metody getViewAt'''. Nie jestem pewien, czy to ze względu na sposób działania RemoteViewsService lub twój kod. –
Ok thxs, jak mogę to naprawić? – manua27
Aby przełamać ograniczenia tej sfery, możesz odwołać się do tego posta http://stackoverflow.com/questions/26602258/how-to-achieve-the-following-in-realm-for-android/32607241#32607241. pokazuje rodzaj implementacji wrappera w celu zwolnienia aplikacji z dostępu do Realm z niepoprawnego wątku wyjątku –