шаблон публикации/подписки android


Есть ли шаблон публикации / подписки в android?

Чего я хочу добиться, так это того, что у меня есть этот класс, который может уведомить заинтересованную сторону о событии. Тогда заинтересованная сторона может делать все, что ей нужно.

Исходящие из мира .net microsoft, такого рода вещи встроены.

Есть ли у android что-то подобное, или мне нужно написать что-то вроде шаблона наблюдателя?

5 5

5 ответов:

Я думаю, что вы говорите в терминах передачи событий / сообщений между классами в вашем приложении. Таким образом, этот вопрос, вероятно, сводится к реализации такого шаблона на Java.

На самом деле нет ничего уже испеченного (т. е. нет системного класса event), один из наиболее распространенных способов позволить классу распространять событие / сообщение-это метод Listener (см. wikipedia, Фогель, IBM ).

Тоже есть фреймворки, как из этого так ответ .

Если вас беспокоят сообщения asynch между потоками / процессами в Android, то есть обработчики , AsyncTasks и (для межпроцессных) Parcelables.

Я нашел LocalBroadcastManager наиболее подходящим для стиля in app pub-sub. Вы всегда можете использовать наблюдателей, но этот делает жизнь проще:

Https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

Править: Похоже, что сейчас есть несколько решений. Они, безусловно, заслуживают упоминания:

Взгляните на BroadcastReceiver. Я думаю, это то, что ты ищешь.

Я знаю, что это немного старовато, но это был лучший результат google для "Android publish subscribe".

Локальный менеджер вещания для Android также является опцией. У него есть некоторые преимущества перед глобальными вещательными целями.

Однако он по-прежнему тесно связан с намерениями.

Я знаю, что это старый, но я использовал EventBus от GreenRobot. Пока что это здорово. Гораздо более свободно связаны с намерениями, чем BroadcastReceivers и LocalBroadcastManagers. Проверьте это здесь: http://greenrobot.github.io/EventBus/