У меня есть эта функция - вставка данных в базу данных Room в приложении для Android:
public void insertInfoToDB () {
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
int medId = db.medicationsDao().getMedicationIdByName(medName);
//insert data to medications table
MedicationsTable medication = new MedicationsTable(medId, medName, amountDosageMg, remindersAmountPerDay);
db.medicationsDao().insert(medication);
//insert data to reminders table
RemindersTable reminder;
for (int i = 0; i < selectedDaysSet.size(); i++) {
for (int j = 0; j < allReminderTimes.size(); j++) {
reminder = new RemindersTable(allReminderTimes.get(j).getHour(),
allReminderTimes.get(j).getMinutes(), allReminderTimes.get(j).getDoses()
, selectedDaysSet.get(i), medication.getId());
db.medicationsDao().insertReminder(reminder);
createNotification(reminder.getId(), allReminderTimes.get(j).getHour(),
allReminderTimes.get(j).getMinutes(), allReminderTimes.get(j).getDoses(),
selectedDaysSet.get(i));
}
}
Пока данные вставляются в дб, первичный ключ (autoGenerated) id равен 0, и мне нужно сделать что-то с ключом сразу после.Поэтому мне нужно "держать" или что-то между "db.medicationsDao (). InsertReminder (напоминание);"и «createNotification» (вызывается сразу после), чтобы поток завершил вставку в базу данных, прежде чем я вызову createNotification.Спасибо за помощь!