У меня проблема при использовании callBatchTasks, и я пытаюсь сохранить более 30000 записей в базе данных. Я делаю метод в задаче async, чтобы не блокировать основной поток. Когда я не использую callBatchTaks, для сохранения данных требуется более 30 минут, но когда я его использую, время идет до 6-10 минут. Единственная проблема заключается в том, что через 1-2 минуты он блокирует мой индикатор выполнения (он отображается, когда данные сохраняются) и отображает сообщение ожидания/включения, как приложение не отвечает. Вопрос в том, как я могу избежать блока anr. Вот мой код:ORMLite callBatchTasks и отзывчивая ошибка от Android
new AsyncTask() {
@Override
protected String doInBackground(Object... params) {
String response = "";
Log.e(LOG_TAG, "Update started");
try {
getAMISCardRuntimeDao().callBatchTasks(new Callable<Object>(){
@Override
public Object call() throws Exception {
for (int i = 0; i < data.getCardListSize(); i++) {
createOrUpdateCard(doTransactions, data.getCard(i));
}
return null;
}
});
} catch (Exception e) {
Log.d(LOG_TAG, "updateListOfObjects. Exception " + e.toString());
return null;
}
return response;
}
@Override
protected void onPostExecute(Object msg) {
if (msg != null) {
}
}
}.execute(null, null, null);
Спасибо.