При каких обстоятельствах был бы с помощью AIDL для определения сервисного интерфейса быть корректным решением (вместо того, чтобы просто создать расширение service
класс)?
Простое расширение класса обслуживания не позволит вашей службе открывать свои методы внешним объектам. Если вы хотите, чтобы ваша служба отображалась / использовалась кодом, который запускается из вашего приложения для Android, вам нужно будет определить для нее AIDL. Этот AIDL будет передан в общий доступ и оформлен в виде контракта на ваши услуги. Обратитесь к этому http://developer.android.com/guide/components/aidl.html .
Вам необходимо использовать AIDL, если вы хотите, чтобы класс вне процесса вашего приложения имел доступ к Сервису. Если вы используете службу только внутри своего приложения, вы можете использовать локальную службу .