¿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á alMainActivity
s 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 */ }
}