Aşağıdaki GÜÇLENDİRME API sahiptir:GÜÇLENDİRME SONRASI Bölge nesne
@POST("/payments")
Observable<Response> saveCreditCard(@Body CreditCard creditCard)
CreditCard
bir RealmObject
olup.
benim API yöntemini kullanmaya çalıştığınızda: aşağıdaki hatayı alıyorum
CreditCard card = realm.createObject(CreditCard.class);
card.setWhateverField(...);
...
mApi.saveCreditCard(card)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(...);
:
> retrofit.RetrofitError: com.fasterxml.jackson.databind.JsonMappingException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they where created.
System.err﹕ at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:400)
System.err﹕ at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
System.err﹕ at retrofit.RestAdapter$RestHandler$1.invoke(RestAdapter.java:265)
System.err﹕ at retrofit.RxSupport$2.run(RxSupport.java:55)
System.err﹕ at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
System.err﹕ at retrofit.Platform$Android$2$1.run(Platform.java:142)
System.err﹕ at java.lang.Thread.run(Thread.java:818)
System.err﹕ Caused by: java.lang.AssertionError: com.fasterxml.jackson.databind.JsonMappingException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they where created.
O RETROFIT io()
zamanlayıcı üzerinde JSON
için seri yaptığını varsayıyorum, dolayısıyla hata.
Realm'in iş parçacığı sorununu nasıl aşabileceğime dair herhangi bir önerim var mı?
kod 2 ilave hatları gerektiren bir çözüm bulundu ve:
Realm modeli için bir modele sahip olmanız ve bu donanımları kullanmanız gerekir. – Divers
50'den fazla modelimiz var, bu gerçekten bir çözüm değil. –
Anladım, ancak tek çözümün tek şansı. – Divers