Warum ist UtteranceProgressListener keine Schnittstelle?

Ich spiele mit den TTS-Funktionen von Android herum und die TextToSpeech-Klasse hat diese Methode, um einen Listener festzulegen, der benachrichtigt wird, sobald das Spielen von TextToSpeech beendet ist:

public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)

Aber dieOnUtteranceCompletedListener ist definiert alspublic abstract class. Als meineMainActivity Die Aktivität wird bereits erweitert, sie kann nicht erweitert werdenOnUtteranceCompletedListener auch. Ich könnte die ältere Methode mit einem verwendenOnUtteranceCompletedListener, aber dies ist veraltet:

public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`

Warum istOnUtteranceCompletedListener nicht definiert alspublic static interface? Ich denke daran, meine eigenen zu schreibenUtteranceProgressListenerImpl, der ruft dann einfach die anMainActivitys onDone Methode. Ist das der richtige Weg oder gibt es eine bessere / sauberere Alternative?

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


}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage