Мой общий совет при реализации интерфейсов обратного вызова [ключевое слово Java] заключается в том, чтобы сделать интерфейс [ключевое слово не из Java] подходящим для вызываемого типа. Как правило, в анонимном внутреннем классе должно быть не так много, а больше, чем просто переадресация вызова.
Кроме того, как правило, нехорошо иметь объект, который сконструирован, и тогда для него вызывается только один метод. Сделайте его статическим методом (который, возможно, в свою очередь может создать объект через закрытый конструктор и запустить его).