Я новичок в Android, и я запутался в службе Android, насколько я понимаю, код, связанный с пользовательским интерфейсом, выполняется в действии, а фоновая работа выполняется в моем собственном потоке, так что же такое использование службы? Кажется, я могу использовать активность и поток, чтобы делать что угодно.

0
L.J.W 26 Мар 2011 в 18:20

1 ответ

Фоновая работа может и должна выполняться в потоке. Однако если эта работа не является частью службы, ОС может остановить этот поток без предупреждения, если ни одно из действий приложения не отображается.

Например, если вы пишете приложение для MP3-плеера, вы, вероятно, не захотите, чтобы музыка останавливалась, если пользователь возвращается на главный экран. Таким образом, вы создаете службу, которая на самом деле воспроизводит музыку, а затем ОС будет пытаться избежать уничтожения процесса вашего приложения, если служба запущена.

Службы также могут использоваться для предоставления функций другим приложениям. В этом случае процесс приложения будет запущен по запросу, когда какое-либо другое приложение захочет использовать службу, и может быть остановлен ОС после того, как другие приложения завершат работу со службой.

Дополнительную информацию см. в Документации по службе.

5
Kevin Cathcart 26 Мар 2011 в 18:51
Спасибо за ваш ответ, но если я запущу поток в одном действии, а затем пользователь вернется на главный экран, поток перестанет работать?
 – 
L.J.W
27 Мар 2011 в 05:51
Поток может продолжать работать некоторое время, но ОС без предупреждения убьет приложение, если оно захочет освободить память. Поскольку у него нет видимой активности и запущенной службы, ОС рассматривает процесс как просто кеш приложения, который можно очистить, не заботясь ни о ком. Прочтите developer.android.com/guide/topics/fundamentals/ … для получения дополнительной информации.
 – 
Kevin Cathcart
28 Мар 2011 в 07:54