Услуги Android могут быть убиты операционной системой в любое возможное время.
Более точно, Android приложения процессы могут погибнуть от операционной системы в любой момент.
Нет надежных вызовов жизненного цикла, таких как onDestroy(), на которые можно положиться.
Исправить. onDestroy()
, скорее всего, будет вызван, но он не гарантируется.
Я должен реализовать службу, выполняющую много длительных задач и кучу файловых операций в фоновом режиме.
Практически любое программное обеспечение, большее, чем «привет, мир», соответствует этому описанию.
Как правило, это хорошая идея сделать это в любом виде обслуживания?
У вас нет большого выбора. Служба - это то, что помогает поддерживать ваш процесс, когда он больше не находится на переднем плане с точки зрения пользовательского интерфейса. Если вы не используете услугу, срок ее службы, вероятно, будет составлять порядка минут, а может быть и меньше. При обслуживании срок службы вашего процесса может составлять несколько часов, хотя он сильно зависит от устройства (например, объем оперативной памяти системы) и пользователя (например, как занят пользователь и сколько других приложений хотят выполнять фоновые работы).
Что происходит с дескриптором открытого файла при уничтожении процесса?
Если вы попытались записать материал в файл примерно в точке завершения процесса, любые байты, еще не переданные ОС (например, буферизованные на Java), не будут находиться в файле.
Есть ли предпочтительный способ достижения этой
Я понятия не имею, что «это».
нравится использовать переднюю часть обслуживания?
Есть три основные модели для использования переднего плана обслуживания:
Краткие сделки. Например, K9 Mail использует службу переднего плана, пока он проверяет новые сообщения, но только в течение этого короткого окна.
Операции, управляемые пользователем. Это обычный вариант использования переднего плана. Например, музыкальные проигрыватели обычно используют переднюю часть воспроизведения музыки.
«Я собираюсь попытаться жить вечно». Это не особенно практично, поскольку услуги на переднем плане не живут вечно. Пользователи также раздражаются услугами переднего плана, где они не понимают, что они получают в качестве компромисса для потребления ОЗУ/ЦП системы, а также всегда отображаемого значка уведомления.
Независимо от того, подходит ли какой-либо из этих шаблонов вашему проекту, вам нужно будет определить для себя.