2016-06-28 3 views
0

Я использую службу для непрерывной синхронизации информации для отображения активности. Служба запускает бесконечный цикл while (true), в котором информация обновляется каждые 10 секунд. В некоторых устройствах служба останавливается после выполнения. Как я могу сохранить задачу намерения службы? Он должен работать, даже если пользователь минимизирует приложение.Как создать бесконечный IntentService?

+0

Извините, тема вашего вопроса говорит противоположность вашего вопроса. Или поставить перед: «Как» и вопросительный знак в конце. – statosdotcom

+1

«Я ... постоянно синхронизирую информацию ... каждые 10 секунд» - если «синхронизировать», вы подразумеваете синхронизацию с каким-то сервером через Интернет, почему вы думаете, что это хорошая идея? Android идет на большие расстояния, чтобы приложения не делали такого рода вещи, потому что пользователи ценят время автономной работы. – CommonsWare

ответ

3

Вы не сделаете этого (и вы даже не сможете с тех пор как Android 6.0: doze). Рассмотрите возможность использования cloud messaging, чтобы уведомить ваше приложение о том, что что-то изменилось на сервере.

0

A Service идеально подходит для проведения длительных процессов, которые переживают любую деятельность. Если вы просто показываете данные, а не сохраняете их или выполняете какую-то фоновую обработку, нет никаких оснований использовать Service. Просто используйте Handler#postDelayed(...) в действии и убедитесь, что задача удалена при паузе.

Опрос каждые десять секунд, вероятно, является чрезмерным. Фактически, опрос вообще, вероятно, неэффективен, если вы не ожидаете, что данные будут меняться так же часто, как вы опросите.

Смежные вопросы