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

Dive Into Android. Broadcast Receivers.

Dive Into Android. Broadcast Receivers.

Avatar for Alex Korovyansky

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 • ...