Здравствуйте, lpd, Вы писали:
lpd>В Android как раз сервис в отдельном потоке выполняется. Кроме того, сервису можно поставить флаг, при котором система его убьет только в _самом_ крайнем случае. AsyncTask же она убьет вместе с активити.
lpd>Про сервисы говорю точно, т.к. использовал это в своем проекте.
lpd>см. http://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification)
AsyncTask всё же к Activity не имеет никакого отношения. Более того —
An AsycTask is only truly gone when it is completed OR the process is killed which may or may not happen after finish is called. Что в общем-то и нужно и полностью соответсвует нормальной модели программирования. Сервисы же под контролем ОС и могут быть прибиты по поводу и без повода. Мне ещё вот этот комент понравился:
Services get killed. Like app gets killed. It is Android philosophy that you can get killed at any time.
You should as other wrote not make the assumption that your backgroundservice runs forever.
But you can use a foreground service to drastically reduce the chance of getting killed/restarted. Note that this forces a notification which is always visible. For example music players, vpn applications and sportstracker use this API.
Так что AsyncTask >> background service.