Служба Android останавливается

Я дошел до того момента, когда я в нескольких шагах от того, чтобы облысеть ...

Я пытаюсь запустить службу, которая будет проверять, работают ли серверы на моей работе бегут. Это должно происходить каждые 5 минут.

Я прошел через TimerTask, ScheduledExecutorService и, наконец, Handler. ма в нескольких шагах от облысения ... Я пытаюсь запустить службу, которая будет проверять, работают ли серверы на моей работе. Это должно происходить каждые 5 минут. Я ...

Я дошел до того, что я в нескольких шагах от того, чтобы облысеть ...

Я пытаюсь запустить службу, которая будет проверять, работают ли серверы на моей работе бегут. Это должно происходить каждые 5 минут.

Я прошел через TimerTask, ScheduledExecutorService и, наконец, Handler. ма в нескольких шагах от облысения ... Я пытаюсь запустить службу, которая будет проверять, работают ли серверы на моей работе. Это должно происходить каждые 5 минут. Я ...

Я дошел до того, что я в нескольких шагах от того, чтобы облысеть ...

Я пытаюсь запустить службу, которая будет проверять, работают ли серверы на моей работе бегут. Это должно происходить каждые 5 минут.

Я прошел через TimerTask, ScheduledExecutorService и, наконец, Handler. Все они работают «нормально» в течение нескольких часов, за исключением некоторой неточности, 1-5 минут отключения, а затем внезапно «таймер» просто перестает срабатывать.

Я читал, что Планировщик остановится, если обнаружит неперехваченное исключение, и я уверен, что это относится и к TimerTask - но, проверяя файлы журналов, нет никаких исключений ...

Когда я сегодня вернулся с работы домой, я решил сделать поэкспериментируйте с Handler.

Я создал 2 обработчика, один запускал код для проверки серверов и увеличивал int по одному. Другой просто записал бы значение указанного int, чтобы не останавливаться, если бы он обнаружил исключение (хотя я не понимаю, как бы это было).

Он отлично работает с обычной погрешностью в 1-5 минут для несколько часов и затем останавливается, ниже - последние строки из журнала:

02-07 20:03:25.892 D/dalvikvm(  992): GC_EXPLICIT freed 192K, 53% free 4295K/9031K, external 3755K/4825K, paused 114ms
02-07 20:03:35.572 D/dalvikvm( 5472): GC_EXPLICIT freed <1K, 54% free 2895K/6279K, external 2002K/2137K, paused 61ms
02-07 20:04:42.212 V/ServerChecker(12568): Timer triggered
02-07 20:04:42.212 V/ServerChecker(12568): Checking: linux15
02-07 20:04:44.152 V/ServerChecker(12568): Checked: linux15
02-07 20:04:44.152 V/ServerChecker(12568): Checking: linux1
02-07 20:04:44.462 V/ServerChecker(12568): Checked: linux1
02-07 20:04:44.462 V/ServerChecker(12568): Checking: linux12
02-07 20:04:44.762 V/ServerChecker(12568): Checked: linux12
02-07 20:04:44.762 V/ServerChecker(12568): Checking: linux9
02-07 20:04:45.072 V/ServerChecker(12568): Checked: linux9
02-07 20:04:45.072 V/ServerChecker(12568): Checking: linux14
02-07 20:04:45.382 V/ServerChecker(12568): Checked: linux14
02-07 20:04:45.382 V/ServerChecker(12568): Test timer triggered: 13
02-07 20:05:01.002 E/InputDispatcher(  223): channel '406cefc8 com.n04dev.serverchecker/com.n04dev.serverchecker.ServerChecker (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
02-07 20:05:01.002 E/InputDispatcher(  223): channel '406cefc8 com.n04dev.serverchecker/com.n04dev.serverchecker.ServerChecker (server)' ~ Channel is unrecoverably broken and will be disposed!
02-07 20:05:08.932 D/dalvikvm(12842): GC_EXPLICIT freed 73K, 51% free 2641K/5379K, external 2002K/2137K, paused 37ms
02-07 20:05:09.132 D/dalvikvm(  185): GC_EXPLICIT freed 11K, 53% free 2554K/5379K, external 2002K/2137K, paused 96ms
02-07 20:05:12.022 D/dalvikvm(  185): GC_EXPLICIT freed <1K, 53% free 2554K/5379K, external 2002K/2137K, paused 164ms
02-07 20:05:12.062 D/dalvikvm(  185): GC_EXPLICIT freed <1K, 53% free 2554K/5379K, external 2002K/2137K, paused 36ms
02-07 20:05:18.612 D/dalvikvm(12852): GC_EXPLICIT freed 59K, 52% free 2596K/5379K, external 2002K/2137K, paused 72ms

I ' Я просмотрел последние два сообщения о моем приложении и нашел эту ветку - Но я не понимаю, как это применимо в моем случае.

Я действительно надеюсь, что вы, ребята, имеете некоторое представление о том, что я ' м делаю неправильно. Я занимаюсь этим несколько недель ... Пробую разные таймеры, пытаясь поймать таймер, останавливая "основной" таймер, а затем перезапускаю его, но безуспешно, и, как показывает мой последний эксперимент, это не похоже проблема с таймером .. думаю ..

8
задан Community 23 May 2017 в 12:12
поделиться