2012-07-11 3 views
2

서비스와 관련하여 이상한 문제가 있습니다. 그것은 ICS 에뮬레이터에서 완벽하고 완벽하게 작동합니다. 그러나 ICS 4.0.4로 Galaxy Nexus에서 실행하면 stacktraces없이 서비스가 비정상적으로 중단됩니다. 아래에 내가 가진 모든 것이 있습니다.서비스가 Galaxy Nexus에서는 충돌하지만 에뮬레이터에서는 충돌하지 않습니다.

07-11 16:26:37.758: INFO/ActivityManager(136): Process com.test.service (pid 3899) has died. 
07-11 16:26:37.758: WARN/ActivityManager(136): Scheduling restart of crashed service com.test.service/.MyService in 20000ms 

나는 봤지만 아무 생각도 들지 않았습니다. 어떻게 든 기억력에 연결될 수 있습니까? 나는 무엇을 할 것으로 예상됩니까?

UPD

P.S. 어떤 의미가있는 경우 onStartCommand()에서 배경 스레드를 시작하고이 스레드는 무한히 작동합니다.

P.P.S. 나는 운이없는 별도의 프로세스에서 서비스를 시작하려고했습니다.

답변

1

필자는 시스템이 때로는 불필요하다고 판단되는 프로세스를 제거/제거한다고 생각합니다. 그러나 onStartCommandSTART_STICKY을 반환하면 죽이는대로 다시 시작됩니다 ... 나는 극한 상황에서 도움이 될 것이라고 생각하지만 그러한 프로세스를 죽이는 시점을 보지 못했습니다. 에뮬레이터 동작은 다를 수 있습니다.

서비스가 실제로 충돌하지 않는다는 것을 가정 (거기에 로그 캣에서 스택 추적의 일종해야한다), 그것은 foreground 서비스로 시작해야합니다, 그렇게 쉽게 서비스를 죽이는에서 시스템을 방지하기 위해 .

+0

startForeground가 도움이되는 것처럼 보입니다. 나는 그것을 시도 할 것이다, 고마워. –

관련 문제