2011-12-19 8 views
0

Я столкнулся с частью Android-кода. Я не совсем понимаю цель обратного вызова, потому что он пуст.Процедура обратного вызова в Android

В Animation.java

private AnimationCallback callback = null; 

public Animation(final AnimationCallback animationCallBack) { 
    this(); 
    callback = animationCallBack; 
} 

public void stop() { 
    if (callback != null) { 
     callback.onAnimationFinished(this); 
    } 
    active = false; 
} 
public interface AnimationCallback { void onAnimationFinished(final Animation animation); } 

но в AnimationCallback есть только

public interface AnimationCallback { 
    void onAnimationFinished(final Animation animation); 
} 

Я думаю, мой вопрос, что же callback.onAnimationFinished(this) делать? Кажется, в рутине ничего нет.

ответ

3

Конструктор объявляется, что принимает все, что реализует интерфейс AnimationCallback. В Java интерфейс определяет поведение объекта без указания какого-либо его поведения.

Фактический объект, который передается конструктору, представляет собой конкретный класс, реализующий интерфейс AnimationCallback. Вы должны знать фактический класс объекта, который используется, чтобы знать, что он делает.

По желанию, вот простой (и довольно бесполезный) класс, который просто регистрирует тот факт, что анимация закончил:

public AnimationFinishedLogger implements AnimationCallback { 
    public void onAnimationFinished(final Animation animation) { 
     Log.i("AnimationLogger", "Animation finished"); 
    } 
} 
+0

вы можете дать только краткий образец с точки зрения Реализует AnimationCallback? – lilzz

+0

Добавлен код примера @lilzz –

Смежные вопросы