Dlaczego UtteranceProgressListener nie jest interfejsem?

Bawię się funkcjami TTS Androida, a klasa TextToSpeech ma tę metodę, aby ustawić słuchacza, który zostanie powiadomiony po zakończeniu gry TextToSpeech:

public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)

AleOnUtteranceCompletedListener jest zdefiniowany jakopublic abstract class. Jako mójMainActivity już rozszerza działanie, nie może się przedłużaćOnUtteranceCompletedListener także. Mogłem użyć starszej metody zOnUtteranceCompletedListener, ale jest to przestarzałe:

public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`

Dlaczego jestOnUtteranceCompletedListener nie zdefiniowany jakopublic static interface? Myślę o napisaniu własnegoUtteranceProgressListenerImpl, który po prostu zadzwoni doMainActivitys onDone metoda. Czy jest to właściwy sposób, czy istnieje lepsza / czystsza alternatywa?

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 */ }


}

questionAnswers(1)

yourAnswerToTheQuestion