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.