Опрос на сайте

для игр
для работы
для учёбы
для всего
незнаю, все купили и я купил


Календарь
«    Октябрь 2013    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Архив новостей
Июль 2010 (5)
Июнь 2010 (12)
Декабрь 2009 (6)
Июль 2008 (6)
Июнь 2008 (6)
Март 2008 (6)
Февраль 2008 (5)
Январь 2008 (5)
Декабрь 2007 (11)
Ноябрь 2007 (13)
Октябрь 2007 (11)
Сентябрь 2007 (11)
Апрель 2007 (7)

Наши друзья


Популярные статьи

Статистика

Июнь 2010 (12)
Декабрь 2009 (6)
Июль 2008 (6)
Июнь 2008 (6)
Март 2008 (6)
Февраль 2008 (5)
Январь 2008 (5)
Декабрь 2007 (11)
Ноябрь 2007 (13)
Октябрь 2007 (11)
Сентябрь 2007 (11)
Апрель 2007 (7)

-->

Использование фоновых потоков (AsyncTask)

18.08.2017

Для взаимодействия со службой используется активность, но работать со службой может любой компонент приложения, включая другие службы, активности, общие классы и т.п. Также следует отметить, что служба не останавливается самостоятельно — в этом она полагается на активность. Для самостоятельного останова службы доступно несколько методов, в частности, stopSelf() и stopSelfResult().

Класс BackgroundService представляет собой типичный пример службы, используемой компонентами приложения, в котором служба размещена. Другими словами, приложение, выполняющее службу, является также и ее единственным потребителем. Поскольку служба не поддерживает клиентов за пределами этого процесса, она является локальной. И по контрасту с удаленной службой локальная служба возвращает null из метода bind(). Следовательно, единственный способ привязки к этой службе — вызов Context.startService (). К числу критически важных методов локальной службы относятся onCreate(), onStartCommand(), stopXXX() и onDestroy(). Не знаете как провести выходные? Запишитесь на квесты в краснодаре. Вы не только отлично проведете время, но и получите массу положительных эмоций.

Есть случай, когда будет существовать только один экземпляр локальной службы с единственным фоновым потоком. В такой ситуации в методе onCreate() класса BackgroundService можно было бы создать поток, выполняющий всю работу службы. Создать и запустить этот поток можно в методе onCreate(), а не в onStartCommand(). Причина в том, что onCreate() вызывается только один раз, и поток должен создаваться однократно за время существования службы. Однако в onCreate() не доступно содержимое намерения, переданного startService(). Если без содержимого намерения не обойтись, можно воспользоваться описанным ранее шаблоном с учетом того, что метод onStartCommand() должен быть вызван только один раз.





























Главная страница | Партнёры | Контакты | Статистика | Прайс | RSS Информер