Почему UtteranceProgressListener не является интерфейсом?
Я играю с функциями Android TTS, и у класса TextToSpeech есть этот метод для установки слушателя, который получает уведомление, когда TextToSpeech заканчивает играть:
public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
НоOnUtteranceCompletedListener
определяется какpublic abstract class
, Как мойMainActivity
уже расширяет активность, она не может расширятьOnUtteranceCompletedListener
также. Я мог бы использовать более старый метод сOnUtteranceCompletedListener
, но это не рекомендуется:
public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
ПочемуOnUtteranceCompletedListener
не определяется какpublic static interface
? Я думаю написать свою собственнуюUtteranceProgressListenerImpl
, который затем просто позвонитMainActivity
sonDone
метод. Это правильный путь или есть лучшая / более чистая альтернатива?
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 */ }
}