Моя цель - не нарушать чью-либо сборку при обновлении версии библиотеки и в то же время избегать принуждения разработчика к компиляции с использованием API 29. Кажется, у меня есть два варианта:
- Обеспечитьотдельная библиотека, так что разработчики, компилирующие с API 28 и ниже, не будут затронуты;
- предупреждают разработчиков, ориентирующихся на новую версию, чтобы заменить определение сервиса в манифесте, используя
tools:node="replace"
.
Проблема с первым подходом состоит в том, что мне нужно будет поддерживать две библиотеки в течение некоторого времени.Проблема со вторым заключается в том, что разработчики должны помнить об отмене изменения после обновления версии SDK.
В моем случае я перейду ко второму подходу.Передав явный тип службы переднего плана методу startForeground
при нацеливании на Android Q, я могу вызвать сбой, если тип не задан в манифесте.Поэтому разработчик может поймать это при нацеливании на Android Q и отменить изменение манифеста, чтобы исправить это.