В вычислениях интерфейс - это общая граница, через которую два или более отдельных компонента компьютерной системы обмениваются информацией. (Википедия)
Вы можете захотеть ответить на некоторые события либосистемные события или пользовательские события.Но для этого вам нужно знать, когда происходит событие, которое вы хотите запечатлеть, а также что нужно сделать в это время.
И для этого вы открываете конфиденциальный EAR для прослушивания событий.Но этого будет недостаточно, так как вам нужно также получать уведомления, чтобы вы могли ответить в соответствии с событием.Вы устанавливаете обратных вызовов , которые будут уведомлять, когда происходит событие.Те пустые методы тела, которые мы создаем внутри интерфейса.
Слушатель - это тот интерфейс, который слышит и отправляет обратные вызовы.
Так как все это можно использовать?И как все они взаимодействуют?
- Сначала создайте интерфейс с методами пустых тел, которые вы намереваетесь вызывать при возникновении события:
public interface MyListener{
void actionOneHappens(Object o);
void actionTwo();
void actionThree();
}
- Создайте класс, который обрабатывает что-то, например, считает:
public class MyCounter{
//create a member of type MyListener if you intend to exchange infos
private MyListener myListener;
//let's create a setter for our listener
public void setMyListener(MyListener listener)
{
this.myListener=listener;
}
MyCounter(){
}
//this method will help us count
public void startCounting()
{
new CountDownTimer(10000,1000)
{
@Override
public void onTick(long millisUntilFinished) {
//I want to notify at third second after counter launched
if(millisUntilFinished/1000==3)
{
// I notify if true :
//as someone can forget to set the listener let's test if it's not //null
if(myListener!=null){
myListener.actionThree();
}
}
}
@Override
public void onFinish() {
}
}.start();
}
}
- Затем вы можете создать объект типа
MyCounter
и узнать, когда он равен трем:
MyCounter myCounter=new MyCounter();
myCounter.setMyListener(new MyListener()
{
//then override methods here
@override
void actionOneHappens(Object o){
}
@override
void actionTwo()
{}
@override
void actionThree()
{
//Add you code here
Toast.makeText(getApplicationContext(),"I'm at 3",Toast.LENGTH_LONG).show()
}
});
//start your counter
myCounter.startCounting();
И это сделано !!Вот как мы поступаем.