Как реализовать слушателя
У меня проблема с дизайном. Мне нужно реализовать слушателя. Я увидел следующий вопрос:
Как создать собственный интерфейс прослушивателя в android?
Но в ссылке, которая содержится в ответе, автор создает слушатель, который просто расширяет системный определитель. Например, onClick, вы выполните некоторую проверку, а затем вызовите другой метод, называемый "whenValidatedListener"
Мне нужно определить слушателей, которые не связаны с существующими прослушивателями событий. В основном будет некоторая обработка, происходящая в родном (C/С++) коде и в коде Android мне нужен слушатель, чтобы отвечать на определенные сообщения от него.
Я думаю, что смогу сделать это с помощью обработчиков. Но AsyncTask - рекомендуемый метод многопоточности.
Есть ли способ реализовать пользовательский-слушатель, используя AsyncTask?
Ответы
Ответ 1
AsyncTask не имеет ничего общего с реализацией слушателя.
Здесь слушатель:
public interface TheListener {
public void somethingHappened();
}
Назовите его, как хотите. Например, здесь класс делает что-то вроде View:
public class Something {
private TheListener mTheListener;
public void setTheListener(TheListener listen) {
mTheListener = listen;
}
private void reportSomethingChanged() {
if (mTheListener != null) {
mTheListener.somethingHappened();
}
}
}
Вы можете сделать это настолько сложным, насколько хотите. Например, вместо одного указателя-слушателя вы можете иметь ArrayList для регистрации нескольких слушателей.
Вызов этого из собственного кода также не имеет ничего общего с реализацией интерфейса прослушивателя. Вам просто нужно узнать о JNI, чтобы узнать, как собственный код может взаимодействовать с кодом языка Java.
Ответ 2
Просто для того, чтобы прояснить ситуацию: вы делаете именно то, что сказал hackbod, и добавляете это: активность, которая охватывает класс (с помощью метода setListener (прослушиватель прослушивания)), реализует Listener и в нем oncreate или onResume или где-либо вы вызываете yourClass.setListener(это).