У меня есть IntentService
, который делает долгую работу, это занимает около 15 минут. Это процесс синхронизации для получения новых данных с моего сервера.Почему мой BroadcastReceiver перестает получать через некоторое время
Когда начинается эта услуга, я также запускаю операцию, чтобы отобразить прогессию.
Это действие создает BroadcastReceiver
, который перехватывает сообщения, отправленные из службы о ходе процесса.
Если я оставляю приложение, выполняющее это задание, через некоторое время SO выключает экран.
Когда я снова включаю экран, примерно через 15 минут сервис уже выполнен, но прогресс, похоже, устарел. BroadcastReceiver
прекратил работать, и мое сообщение END OF SYNCHRONIZATION
не было получено этой активностью.
Проблема заключается в том, что в этом сообщении я снова запускаю основное действие, чтобы пользователь снова использовал приложение.
Как я могу это решить?
сообщение какой-то код ... Я предполагаю, что ваша деятельность не получает сообщения, потому что ваши приемники незарегистрированный OnPause или OnDestroy, но это трудно сказать, так как нет кода. Я бы предложил использовать serviceBinding и Messengers вместо прослушивания широковещательных приемников и отправить сообщение о старте, когда ваша активность связывается, чтобы получить самый последний статус ... но опять-таки код поможет. –
@AdamW трансляция зарегистрирована и незарегистрирована в методах onStart и onStop. –