На самом деле обратный вызов update()
из другого потока является требованием спецификации Config Admin.См. Раздел 104.5.3 Спецификации сборника R4:
Обновленный обратный вызов (словарь) от службы администратора конфигурации к управляемой службе должен выполняться асинхронно.Это требование позволяет Managed Service завершить инициализацию синхронизированным методом без вмешательства со стороны обратного вызова службы Configuration Admin.
К сожалению, это означает, что вам необходимо кодировать ManagedService в , а не имеют ошибочные сбои или присущие условия гонки.Например, если вы регистрируетесь как сервис под другим интерфейсом, кроме ManagedService
, дождитесь получения ненулевого update
, прежде чем зарегистрировать его под этим интерфейсом.