Есть ли способ вызвать запросы Realm от AsyncTask? У меня так много запросов, которые делают join, поэтому я хочу назвать их из отдельного One AsyncTask, чтобы избежать загрузки в потоке пользовательского интерфейса. Пока я использую DefaultInstance of Realm всюду. Я получаю эту ошибкуВызов области из AsyncTask
Realm объекты могут быть доступны только на нить они где созданный
PS Я знаю Realm имеет свой собственный Async для каждого запроса, но, как я только что сказал я есть много отдельных вызовов, которые далее выполняют объединения и для циклов.
EDIT
вот мой код для асинхронного
@Override
protected Object doInBackground(Object[] params) {
//Step 1: Find All quote_taxes
Realm realm = Realm.getDefaultInstance();
listTaxData = new ArrayList<TaxData>();
try {
RealmResults<quote_taxes> listQuoteTaxes = quote_taxes.get_from_quotes(realm, quote.getId());
if (listQuoteTaxes != null && listQuoteTaxes.size() > 0) {
for (quote_taxes quoteTax : listQuoteTaxes) {
TaxData taxData = new TaxData();
taxData.setTaxName(quoteTax.getTaxName());
taxData.setAccountNumber("" + quoteTax.getAccountNumber());
taxData.setTaxRate("" + quoteTax.getTaxRate() + "%");
double total = quote_taxes.total(realm, quoteTax);
showLog("Total = " + total);
}
}
}catch (Exception ex)
{
}finally {
realm.close();
}
return null;
}
Некоторые примеры кода ... https://github.com/realm/realm-java/blob/master/examples/threadExample/src/main/java/io/realm/examples/threads/AsyncTaskFragment. java –
спасибо ..! Итак, это ключ, мне нужно получить DefaultInstance внутри doinBackground? – Ajji
Не могу ответить на это. Никогда не использовал Realm. Просто очень полезно использовать Google для людей. –