Мы всегда можем переопределить эти функции и добавить к ним больше, но вопрос в том, как эти функции вызываются автоматически, когда их никто не вызывает?Мы не написали никакого кода для их вызова.
Вот здесь и появляется понятие ФУНКЦИИ ВЫЗОВА .
Концепция обратных вызовов заключается в информировании синхронного класса/ асинхронный, если выполняется некоторая работа в другом классе.Некоторые называют это принципом Голливуда: «Не звоните нам, мы вас зовем».
Вот пример:
class A implements ICallback {
MyObject o;
B b = new B(this, someParameter);
@Override
public void callback(MyObject o){
this.o = o;
}
}
class B {
ICallback ic;
B(ICallback ic, someParameter){
this.ic = ic;
}
new Thread(new Runnable(){
public void run(){
// some calculation
ic.callback(myObject)
}
}).start();
}
interface ICallback{
public void callback(MyObject o);
}
Класс A вызывает класс B, чтобы выполнить некоторую работу в потоке,Если поток завершил работу, он проинформирует класс A об обратном вызове и предоставит результаты.Таким образом, нет необходимости опроса или что-то.Вы получите результаты, как только они станут доступны.
В Android используются обратные вызовы, например, между действиями и фрагментами.Поскольку фрагменты должны быть модульными, вы можете определить обратный вызов во фрагменте для вызова методов в действии. скопировано отсюда
для получения дополнительной информации перейдите по этой ссылке, пожалуйста:
ссылка 1
ссылка 2