Используя приведенный ниже оператор из моего PhoneNumbersDao:
// Retrieve entry/entries by contact ID
@Query("SELECT * FROM phone_numbers_table WHERE contact_id = :contactId")
List<PhoneNumber> getPhoneNumbersById(long contactId);
Как я могу создать метод в моем AsyncTask
для асинхронного входа в базу данных и извлечения всех объектов PhoneNumber, которые соответствуют contactId
, который я передаю внутрь? Код ниже - это то, что у меня есть, но я уверен, что мне нужно передать contactId
:
private static class SelectPhoneNumberByIdAsyncTask extends AsyncTask<PhoneNumber, Void, Void> {
private PhoneNumberDao phoneNumberDao;
private SelectPhoneNumberByIdAsyncTask(PhoneNumberDao phoneNumberDao) {
this.phoneNumberDao = phoneNumberDao;
}
@Override
protected Void doInBackground(PhoneNumber... phoneNumbers) {
phoneNumberDao.insert(phoneNumbers[0]);
return null;
}
}
Я сейчас звоню observe()
, как показано:
WorksideDatabase database = WorksideDatabase.getInstance(getApplication());
PhoneNumberDao phoneNumberDao = database.phoneNumberDao();
phoneNumberDao.getPhoneNumbersById(contactID).observe(this, PhoneNumber-> {
});