Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dive Into Android. Broadcast Receivers.

Dive Into Android. Broadcast Receivers.

Alex Korovyansky

November 17, 2013
Tweet

More Decks by Alex Korovyansky

Other Decks in Programming

Transcript

  1. 6 Идея Broadcast-ов • Прием и передача информации между приложениями

    и компонентами Android • Похоже на радио • Сама система является источником большого числа broadcast-ов • Возможность реализовать собственные
  2. 9 Регистрация в манифесте <manifest ... > ... <application ...

    > <receiver android:name=".SimpleReceiver"> <intent-filter> <action android:name="<action>" /> </intent-filter> </receiver> ... </application> </manifest>
  3. 10 Регистрация в коде • Создание приемника BroadcastReceiver • Регистрация

    приемника на onResume • Отмена регистрации на onPause private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { ... } }; @Override protected void onResume() { super.onResume(); registerReceiver(receiver, filter); ... } @Override protected void onPause() { super.onPause(); unregisterReceiver(receiver); ... }
  4. 11 Lifecycle • Объект BroadcastReceiver является валидным только внутри обработчика

    onReceive • После завершения onReceive процесс содержащий только BroadcastReceiver становится «пустым процессом» • Внутри onReceive нельзя инициировать асинхронную операцию, расчитанную только на BroadcastReceiver
  5. 12 Борьба за выживание • Процесс, в котором выполняется обработчик

    onReceive приравнивается к видимому процессу • По завершению onReceive приоритет процесса резко изменяется в зависимости от других компонентов процесса
  6. 13 Два сценария • Normal Broadcasts - хаотичная обработка сообщений

    в неопределенном порядке. Быстрее и легче, чем OrderedBroadcast. • Ordered Broadcast - упорядоченная обработка сообщений согласно приоритету приемников (sendOrderedBroadcast). Возможность вернуть результат и/или прервать цепочку обработки.
  7. 14 Примеры broadcast-ов • Сигналы аккамулятора • Контроль звонков •

    Контроль подключения к 3G и WiFi • Связь между Activities • Обратная связь между Activity и Service • ...