Хорошо, у меня есть этот Retrofit Call, который получает список объектов и вставляет их в локальную базу данных SQLite. Я хочу показать сообщение о том, что операция прошла успешно с помощью кнопки Ok, которая при нажатии открывает новое действие.Как узнать, когда запрос SQLite завершен
Как проверить, завершился ли мой запрос, чтобы я мог показать сообщение?
final ContactApi contactApi = retrofit.create(ContactApi.class);
Call<List<Contact>> callContact = contactApi.getContact(token);
callContact.enqueue(new Callback<List<Contact>>() {
@Override
public void onResponse(Response<List<Contact>> response, Retrofit retrofit) {
List<Contact> contactList = response.body();
if (contactList != null) {
try {
DBHelper dbHelper = new DBHelper(TokenActivity.this, token);
SQLiteDatabase conn = dbHelper.getWritableDatabase();
RepoContact repocontact = new RepoContact(conn);
// Inserts each contact into the database
for (Contatc c : contactList) {
repositorioCadastro.inserirCadastro(c);
Log.i("ACTTOKEN", "Contact insert ID: " + c.getId());
}
} catch (SQLiteException e) {
Log.i("ACTTOKEN", "Faillure on insert: " + e.getMessage());
}
}
Ok, так что я вы добавили try {...} finally {...} блоки и слушатель, теперь для проверки я должен сделать код, чтобы показать сообщение в методе onCommit() или onRollback() SQLiteTransactionListener? – Rafael
Да. Если операция будет успешной, она вернется в finally(), а затем вы сможете показать сообщение. –
Спасибо, это работает! Но мне интересно, как я могу это сделать с несколькими запросами? У меня есть еще один экран, который делает 5 обратных вызовов и вставок в 5 разных таблиц, поэтому, если я определяю переменную на каждом конце, а затем проверю их на метод onCommit(), тест будет происходить после завершения каждого запроса, правильно? – Rafael