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

Dive Into Android. Сервисы.

Dive Into Android. Сервисы.

Alex Korovyansky

November 03, 2013
Tweet

More Decks by Alex Korovyansky

Other Decks in Programming

Transcript

  1. 5 Service • Service - компонент Android приложения • «Функционал»

    • IPC • Выполнение фоновых операций
  2. 6 Замечания • Методы Service выполняются в петле • По

    умолчанию Service не создается в отдельном процессе • Service значительно повышает шансы приложения в борьбе за выживание • Сам по себе Service очень простой механизм
  3. 7 Объявление сервиса в xml <manifest ... > ... <application

    ... > <service android:name=".ExampleService" /> ... </application> </manifest>
  4. 8 Код сервиса public class ExampleService extends Service { @Override

    public void onCreate() { // создание сервиса } @Override public int onStartCommand(Intent intent, int flags, int startId) { // Сервис запущен вызовом startService() return mStartMode; } @Override public IBinder onBind(Intent intent) { // Клиент связался с сервисом через bindService() return mBinder; } @Override public boolean onUnbind(Intent intent) { // Все клиенты разорвали связь с сервисом через unbindService() return mAllowRebind; } @Override public void onDestroy() { // Сервис более не используется и будет уничтожен } }
  5. 9 Два сценария • Started Service - явный запуск и

    остановка сервиса. Обычно без обратной связи • Bounded Service - неявный запуск и остановка сервиса. Обычно клиент-серверная модель • Возможен смешанный сценарий
  6. 11 IPC • Механиз сервисов предоставляет возможность межпроцессного взаимодействия (IPC)

    • IPC может быть обеспечено за счет класса Messenger или подхода AIDL <service android:name=".app.MessengerService" android:process=":remote" />
  7. 12 Примеры сервисов • Загрузчик файла • Музыкальный плеер •

    Клиент для IM • Ядро Qt под Android • Reachability Checker • ...