Executando uma tarefa repetida em segundo plano em um aplicativo em tempo real

Estou escrevendo um aplicativo que escuta e verifica continuamente os sensores (quase todos disponíveis) e salva esses dados no banco de dados do dispositiv

Preciso fazer alguns cálculos a cada X segundo com esses dados e lançar um novo evento, se a verificação de cálculos assim o permitir. Estou pensando em solicitar a conexão do dispositivo enquanto estiver usando o aplicativo (sobre o consumo de bateria).

Qual é a melhor abordagem para a tarefa que precisa fazer os cálculos e lançar o evento? Cronômetro? Tópicos? AsynkTask? AlarmManager? Outra abordagem?

Eu quero continuar obtendo dados dos sensores e salvando-os no banco de dados, apesar de o aplicativo não estar em primeiro plano ... ele deve salvar os valores desde que o aplicativo não seja parado pelo usuário. Uma opção para isso são os bloqueios de ativação (PARTIAL_WAKE_LOCK, que mantém a CPU em execução

Eu gostaria de ouvir opiniões diferentes. Desde já, obrigado! Guillermo.

questionAnswers(2)

yourAnswerToTheQuestion