2010-12-10 2 views

ответ

3

Нет такой вещи, как тип прослушивателя, это просто соглашение об именах для интерфейсов обратного вызова. Поэтому вы просто используете их, если хотите синхронно обрабатывать свои события в одном потоке.

Обработчик - это класс Android ... вы используете его для передачи сообщений и runnables из потока, поднимающего событие (например, «загрузить полный») в поток, который должен обрабатывать его (например, поток пользовательского интерфейса).

+0

Таким образом, в простом приложении нисходящее приложение - лучшее решение. Правильно? – user479211 2010-12-10 11:07:58

7

Это хороший вопрос!

сценария для использования обработчика

У меня есть сервис Android фона работает в моем приложении, которое использует обработчик исключительно для веба-коммуникаций - я решил пойти по этому пути, потому что обработчик очереди запросов и выполнять их один за другим, поэтому я знаю, что последовательность остается неповрежденной.

Например, в приложении для обмена мгновенными сообщениями вам может потребоваться поддерживать последовательность для вашего чата.

сценарий для использования обратного вызова

Мой фоновый сервис также использует класс, который считывает с аппаратными средствами (в отдельном потоке); некоторые данные могут появиться в любое время и должны быть немедленно обработаны. Для этого класса я реализовал интерфейс прослушивателя/обратного вызова.


Вопрос только в том, существует ли какой-либо этикет для размера обработчика. У меня есть около 50 уникальных сообщений:

  • исходящих веб-запросов состоит из приблизительно 25 сообщений (каждое сообщение является другой API на веб-сервере)
  • Каждый API возвращает ответ, поэтому есть еще 25 входящий веб ответы

Обработчик требует около 60% кода службы - как вы можете себе представить, это приводит к очень большой структуре (case {}) (почти 1000 строк кода). Слишком большой? Как разбить его?

Смежные вопросы