Информация об изменениях

Сообщение Re[3]: Андроид активити от 29.10.2015 15:32

Изменено 29.10.2015 15:39 lpd

Здравствуйте, Mishka, Вы писали:

M>Здравствуйте, lpd, Вы писали:


lpd>>Насчет onStop и прочих, в документации андроид есть Activity lifecycle — он все объясняет.

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

M>А вот эти сервисы — это вообще не в тему. Во-первых, они живут на главном потоке, так что если нужно идти на сервер — всё равно придётся использовать что-то вроде AsyncTask. Далее, система в своей великой мудрости может сервис этот прибить, тот же AsyncTask скорее всего более живуч. И вообще, назначение сервиса — это чтоб другие проги могли его запускать.


В Android как раз сервис в отдельном потоке выполняется. Кроме того, сервису можно поставить флаг, при котором система его убьет только в _самом_ крайнем случае. AsyncTask же она убьет вместе с активити.
Про сервисы говорю точно, т.к. использовал это в своем проекте.
см.
Re[3]: Андроид активити
Здравствуйте, Mishka, Вы писали:

M>Здравствуйте, lpd, Вы писали:


lpd>>Насчет onStop и прочих, в документации андроид есть Activity lifecycle — он все объясняет.

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

M>А вот эти сервисы — это вообще не в тему. Во-первых, они живут на главном потоке, так что если нужно идти на сервер — всё равно придётся использовать что-то вроде AsyncTask. Далее, система в своей великой мудрости может сервис этот прибить, тот же AsyncTask скорее всего более живуч. И вообще, назначение сервиса — это чтоб другие проги могли его запускать.


В Android как раз сервис в отдельном потоке выполняется. Кроме того, сервису можно поставить флаг, при котором система его убьет только в _самом_ крайнем случае. AsyncTask же она убьет вместе с активити.
Про сервисы говорю точно, т.к. использовал это в своем проекте.
см.
http://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification)