Android: mantendo um serviço em segundo plano ativo (evitando a morte do processo)

Eu tenho um serviço que é definido como:

public class SleepAccelerometerService extends Service implements SensorEventListener

Essencialmente, estou criando um aplicativo que monitora a atividade do acelerômetro por vários motivos enquanto o usuário dorme com seu telefone / dispositivo na cama. Este é um serviço de longa duração que NÃO DEVE ser morto durante a noite. Dependendo de quantos aplicativos em segundo plano e processos periódicos ocorrem durante a noite, o Android às vezes mata meu processo, encerrando assim o meu serviço. Exemplo:

10-04 03:27:41.673: INFO/ActivityManager(1269): Process com.androsz.electricsleep (pid 16223) has died.
10-04 03:27:41.681: INFO/WindowManager(1269): WIN DEATH: Window{45509f98 com.androsz.electricsleep/com.androsz.electricsleep.ui.SleepActivity paused=false}

Não quero forçar o usuário a ter 'SleepActivity' ou alguma outra atividade no meu aplicativo como primeiro plano. Não posso executar meu serviço periodicamente, porque ele constantemente intercepta onSensorChanged.

Alguma dica? o código fonte está aqui:http://code.google.com/p/electricsleep/

questionAnswers(7)

yourAnswerToTheQuestion