Каков рекомендуемый подход для проверки новых данных независимо от того, находится ли приложение на переднем плане или на заднем плане? Мне интересно, какие люди API Android обычно используют для этого. Кажется, есть несколько способов достижения моей цели, и я хочу убедиться, что я на правильном пути.Проверка новых данных в фоновом режиме
У меня есть что-то вместе, которое использует AlarmManager.SetInexactRepeating()
для вызова IntentService
, который выполняет синхронизацию и вставляет/обновляет данные в базе данных. Это работает, когда приложение находится на переднем плане и на заднем плане, но если я принудительно остановлю приложение, я продолжаю видеть сообщения «К сожалению, прекратил работу», когда срабатывал будильник AlarmManager. В этом случае мне остается только проверять новые данные только тогда, когда приложение работает на переднем плане или в фоновом режиме.
Моя первая мысль - обнаружить, когда приложение закрыто, и остановить будильник, но это не представляется возможным. Поэтому я спрашиваю здесь, мой подход неправильный? Если да, то какой подход используется для выполнения некоторой периодической задачи, независимо от того, находится ли телефон на переднем плане или на заднем плане? Проблема с решением AlarmManager, которое я использую, это тревога, которая продолжает срабатывать, даже когда приложение закрыто.
Сохраняется ли эта услуга, когда приложение закрыто пользователем или ОС? Это то, что я пытаюсь решить. IntentService, вызываемый AlarmManager, продолжает работать до перезагрузки. Я просто хочу запускать свою периодическую фоновое задание, пока приложение работает на переднем плане или в фоновом режиме. –
@Trevor Balcom - Да, это решение позволит службе запускаться во время работы приложения (на переднем плане или в фоновом режиме), но отключит службу, когда приложение будет закрыто пользователем или ОС. Кроме того, вы хотите убедиться и вернуть START_NOT_STICKY из вашего метода onStartCommand() в свою службу, чтобы, если ОС отключит службу, она не будет автоматически перезагружена. – NoChinDeluxe