Tôi đang xử lý sự cố này trên Android:Truy cập giới hạn từ chuỗi không chính xác Android
Truy cập từ chủ đề không chính xác. Các đối tượng realm chỉ có thể được truy cập trên luồng mà chúng tạo ra.
Tôi muốn sử dụng Realm trong RemoteViewsFactory tôi với
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
}
}
... Cuộc gọi này không thành công! Tại sao ?
tôi lấy dữ liệu của tôi như thế này trong lớp học của tôi:
public void onDataSetChanged() {
Realm realm = Realm.getInstance(RemoteViewsX.this.ctx);
this.results = realm.where(Model.class).findAll();
}
tôi gọi remoteFactory của tôi như thế này:
public class ScrollWidgetService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
return new RemoteViewsX (getApplicationContext());
}
}
Bất kỳ ý tưởng?
Tôi không quen với RemoteViewsService, nhưng dường như phương thức '' 'onDataSetChanged''' của bạn được gọi từ một chuỗi khác với phương thức' '' getViewAt''' của bạn. Tôi không chắc chắn nếu điều này là do cách hoạt động của RemoteViewsService hoặc mã của bạn. –
Ok thx, làm thế nào tôi có thể sửa nó? – manua27
Để phá vỡ giới hạn lĩnh vực đó, bạn có thể tham khảo bài đăng này http://stackoverflow.com/questions/26602258/how-to-achieve-the-following-in-realm-for-android/32607241#32607241. nó cho thấy loại thực hiện wrapper để giải phóng ứng dụng của bạn khỏi truy cập Realm từ ngoại lệ thread không chính xác –