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