2012-04-09 2 views
0

Это мой первый эксперимент с сервисами android, поэтому я немного потерялся. Я разрабатываю приложение, которое требует, чтобы служба выполнялась в фоновом режиме во все времена. Эта услуга инициализируется из события onclick в основном действии. Для запуска службы я использую следующий код:Служба Android отключена

Intent Test = new Intent(this, testService.class); 
startService(Test); 

На службе у меня в основном есть две вещи. В методе onCreate я инициализирую таймер и каждые 30 минут открывает новый поток и проверяет, есть ли у сервера какие-либо новые данные. В методах onStart я регистрирую приемник.

После нескольких часов службы погибают, возможно ли, что сборщик мусора удалит службу? Мое подозрение в том, что, как я инициализирую сервис, он все еще привязан к «основному» процессу активности. Что я могу сделать, чтобы убедиться, что служба продолжает работать?

Благодаря

ответ

1

Вам нужно AlarmManager вместо таймера для этой задачи.

+0

Тестирование и, похоже, сработало. Спасибо за помощь. – CodePorter

1

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

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