Причины использования служб для асинхронного выполнения
03.08.2016
При использовании обычных потоков вместо служб для выполнения операций в фоновом режиме существуют две проблемы, типичные именно для этого способа:
Разделение жизненных циклов компонентов и потоков - жизненный цикл потока не зависит от жизненных циклов компонентов ОС Android и соответствующих им Java-объектов более низкого уровня. Поток продолжает выполняться, пока задача не закончит работу или пока соответствующий процесс не прекратит существования, даже после того, как завершит выполнение компонент, инициализировавший этот поток. Потоки могут хранить ссылки на объекты Java до момента своего завершения, что является препятствием для сборки мусора;
Жизненные циклы управляющих процессов - если онерационая система завершает процесс, завершаются и все его потоки. Следовательно, при этом завершаются фоновые задачи, и но умолчанию они не могут быть повторно запущены, когда процесс восстанавливается. Операционная система завершает процессы в зависимости от их ранга (process), поэтому процесс без активных компонентов имеет низкий ранг и с точки зрения системы является наиболее вероятным кандидатом на уничтожение. При этом может произойти неожиданное и нежелательное завершение фоновых задач, которым следовало бы предоставить возможность корректного завершения работы. Например, компонент Activity использует фоновый поток для сохранения некоторой пользовательской информации в базе данных, когда пользователь возвращается к исходному состоянию интерфейса приложения. Если при этом не остается других активных компонентов, процесс становится «пустым», что повышает вероятность его завершения и удаления фонового потока до того, как он успеет записать данные. Нужен легко запомниющийся адрес? Зарегистрируйте домены .рф.
Служба может уменьшить вероятность утечек памяти и снизить опасность несвоевременного завершения задач. Жизненный цикл компонента Service может управляться из фоновых потоков, то есть жизненные циклы компонента и потока объединяются. Как следствие компонент Service может оставаться активным, пока выполняется фоновый поток, и уничтожаться только после его завершения, что существенно улучшает управление жизненным циклом. Жизненные циклы компонентов BroadcastReceiver и Activity отделены от фонового потока, в то время как жизненный цикл компонента Service может быть завершён только после выполнения фоновой задачи. Следовательно, процесс поддерживает компонент Service в течение всего времени выполнения соответствующего фонового потока.
Каталог раций |
Народная рация (популярная рация)
| Kenwood TK-450Частоты: | | Приёма (RX): | 400-470 | Передачи (TX): | 400-470
| Вых.мощность: | 1.0,4.0 ватт
| Каналов памяти: | 199
| Шаг: | 6.25 кГц
| Ак.батарея: | Li-Ion, 7.4v, 1100mAh
|
| Купить Kenwood TK-450 ... |
Другие производители в Каталоге:
Yaesu,
Alinco,
Motorola,
Icom,
Kenwood,
Alan,
Midland,
Voxtel,
JJ-Connect,
Linton,
Kirisun,
Радант,
Diamond,
OPEK,
Anli,
... |
|
Фотогалерея |
|
|
Авторизация/h3> |
| За 10 минут: Гостей: 25 Пользователей: 1 Всего на сайте: 26
Пользователи: • Рысич
|
|
|
Ваше мнение |
Нужна ли "цензура" модераторами тем обсуждений в сети, например "Религия"
|
|
Реклама/h3> |
|
|
куплю-продам/h3> |
Для данного блока нет содержания |
|
|