¿Por qué UtteranceProgressListener no es una interfaz?

Estoy jugando con las funciones TTS de Android y la clase TextToSpeech tiene este método para configurar un oyente que recibe una notificación una vez que TextToSpeech ha terminado de jugar:

public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)

Pero elOnUtteranceCompletedListener Se define comopublic abstract class. Como miMainActivity Ya se extiende la actividad, no se puede extender.OnUtteranceCompletedListener también. Podría usar el método anterior con unaOnUtteranceCompletedListener, pero esto está en desuso:

public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`

Por que esOnUtteranceCompletedListener no definido comopublic static interface? Estoy pensando en escribir mi propiaUtteranceProgressListenerImpl, que luego solo llamará alMainActivitys onDone método. ¿Es esta la forma correcta o hay una alternativa mejor / más limpia?

private class UtteranceProgressListenerImpl extends UtteranceProgressListener {

    private MainActivity mainActivity;

    UtteranceProgressListenerImpl(MainActivity mA) {
        mainActivity = mA;
    }

    @Override
    public void onDone(String utteranceId) {
        mainActivity.onDone(utteranceId);
    }

    @Override
    public void onError(String utteranceId) { /* empty */ }

    @Override
    public void onStart(String utteranceId) { /* empty */ }


}

Respuestas a la pregunta(1)

Su respuesta a la pregunta