Android публиковать / подписаться - PullRequest
7 голосов
/ 03 декабря 2011

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

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

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

Есть ли у Android что-то похожее, или я должен написать что-то вроде образца наблюдателя?

Ответы [ 5 ]

6 голосов
/ 29 апреля 2013

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

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

EDIT: Кажется, сегодня есть несколько решений. Они, безусловно, стоит упомянуть:

5 голосов
/ 03 декабря 2011

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

3 голосов
/ 21 июля 2012

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

Android Local Broadcast Manager также вариант.Он имеет некоторые преимущества перед глобальными намерениями вещания.

Хотя он все еще тесно связан с намерениями.

3 голосов
/ 03 декабря 2011

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

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

Также есть фреймворки, начиная с этого SO ответа .

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

0 голосов
/ 18 июня 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...