Intereting Posts
Получение базы данных SQLite и ее хранение в массиве объектов Android Studio перепутала бразильско-португальские персонажи Как правильно отформатировать XML с помощью XMLSerializer? Применение тени и текста для заголовка и пункта меню в панели действий Шерлока Создание изображения с помощью специального текста в Android Как обычно вы регистрируете записи журнала? (андроид) Использование Gradle для разделения внешних библиотек в разделенных файлах dex для решения ограничений метода Dalvik 64k для Android Как удалить фокус из одного editText Создание видео из серии изображений? NullPointerException: name == null Genymotion Google Nexus 6P 7.0.0 с Open_Gapps arm 7.0.0 Как Flurry предоставляет бесплатный аналитический сервис? Android Разверните все записи в дереве одним щелчком мыши Заменить английскую цифру на персидскую цифру в строке, кроме URL-адреса. Как снять отметку с отмеченных элементов в режиме навигации?

Как реализовать слушателя

У меня проблема с дизайном. Мне нужно реализовать слушателя. Я увидел следующий вопрос SO: Как создать собственный интерфейс Listener в android?

Но в ссылке, которую он дает в ответ, автор создает слушателя, который просто расширяет системный определитель. Например, onClick, вы выполните некоторую проверку и затем вызовите другой метод, называемый «whenValidatedListener»,

Мне нужно определить слушателей, которые не связаны с существующими прослушивателями событий. В основном будет некоторая обработка, происходящая в родном (C / C ++) коде и в коде Android мне нужен слушатель, чтобы отвечать на определенные сообщения от него.

Я думаю, что смогу сделать это с помощью обработчиков. Но AsyncTask – рекомендуемый подход для многопоточности.

Есть ли способ реализовать пользовательский-прослушиватель, используя AsyncTask?

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.

Просто для того, чтобы прояснить ситуацию: вы делаете именно то, что сказал hackbod, и добавьте это: активность, которая охватывает класс (с помощью метода setListener (прослушиватель прослушивания)), реализует Listener и в нем oncreate или onResume или где-либо вы вызываете yourClass.setListener ( это).