Что собой представляют локальные службы

Что собой представляют локальные службы

Локальные службы запускаются через Context.startService(). После запуска они продолжают выполняться до тех пор, пока клиент не вызовет Context.stopService () для службы или сама служба не вызовет stopSelf(). Обратите внимание, что если при вызове Context .startService() служба еще не создана, система создаст ее экземпляр и вызовет метод onStartCommand() службы.

Помните, что вызов Context.startService() после того, как служба запущена (т.е. пока она существует), не приводит к созданию еще одного экземпляра службы, а только к повторному выполнению onStartCommand() функционирующей службы. Ниже представлена пара примеров локальных служб.

• Служба для мониторинга данных от датчика устройства и проведения их анализа, выдающая предупреждения при наступлении определенных условий. Эта служба может функционировать непрерывно.

• Служба запуска задач, которая позволяет активностям приложения отправлять задания и ставить их в очередь на выполнение. Эта служба может функционировать только во время выполнения операции по отправке задания.

В е 15.16 приведена реализация локальной службы, которая запускает фоновые задачи. В конечном итоге для создания и потребления службы понадобятся четыре файла: BackgroundService.java (сама служба), main.xml (файл компоновки для активности), MainActivity.java (класс активности для обращения к службе) и AndroidManifest.xml.

В е 15.16 приведено только содержимое BackgroundService.java. Мы сначала разберем этот код, а после перейдем к остальным трем. Реализация требует Android 2.0 или последующей версии.

import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log;

public class BackgroundService extends Service {

private static final String TAG = "BackgroundService"; private NotificationManager notificationMgr;

private ThreadGroup myThreads = new ThreadGroup("ServiceWorker");

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий