У меня была похожая проблема даже с правильно настроенным onDestroy - ответ, который может быть полезен для людей, заходящих на эту страницу.Для меня onDestroy не вызывали сразу во время stopService, иногда в течение очень долгого времени - оставляя сервис работающим, когда он должен был остановиться.
Ответ в том, что это ожидаемое поведение - я могу догадаться, но неЯ точно знаю почему.Таким образом, мое решение в этом случае состояло в том, чтобы создать открытый статический метод для остановки действий службы вручную, что происходит во время ее вызова, затем stopService () будет вызывать onDestroy в свое собственное время ...
В случае с этим примером (который, вероятно, давно отсутствует, я бы, вероятно, решил оставить службу работающей до тех пор, пока она не будет полностью заполнена приложением, но предоставил способы изменения аудиофайла, пока служба все еще активна.