У меня есть служба, которая выполняет вызовы из базы данных.Служба получает запрос с намерением, и, когда вызов базы данных завершен, она передает намерение «обновление завершено», указывающее завершение вызова.
Иногда база данных уже заполнена кэшированными данными, в которыхВ этом случае я хотел бы немедленно передать намерение «обновление завершено», указывающее, что действие должно отображать кэшированные данные, а затем, как только база данных была обновлена, запустить другое намерение «обновление завершено», указывающее, что действие должно загрузить обновленные данные.
Проблема в том, что вторая трансляция никогда не принимается активностью.Это потому, что я повторно использую тот же объект намерения, который уже был запущен?
Вот код:
if (scheduleDatabase.populated()) {
intent.putExtra("fromCache", true);
getApplicationContext().sendBroadcast(intent);
}
scheduleDatabase.update();
intent.putExtra("fromCache", false);
getApplicationContext().sendBroadcast(intent);
Обновление: если я закомментирую одно из сообщений о намеренияхдругой всегда срабатывает и принимается.Кроме того, если я создаю два объекта намерения с одинаковой строкой действия и запускаю их отдельно, только первый из них когда-либо будет получен действием.Мне пока не ясно, уволен ли другой, но не получен, или он вообще не срабатывает.