Pergunta

Eu tenho um serviço mix caso IDL que eu estou usando em 2 maneiras:

  1. O serviço irá gerar um segmento e fazer uma chamada de rede para pegar algum conteúdo XML em nome da Atividade. O conteúdo está de volta retorno à atividade através de IDL do cliente que define callback métodos
  2. Se a opção de notificação escolhe usuário, em seguida, o serviço cria um timer que é executado repetidamente e cria uma notificação da barra de ferramentas. Também em cache o conteúdo de modo quando o pedido Atividade uma atualização é servido a partir do cache, em vez de uma outra chamada de rede

Então, minhas perguntas são

  1. Para o cenário # 1 que é o preço (se houver) eu estou pagando para usar o serviço para chamadas de rede em vez de criar discussão de fundo diretamente na Atividade?
  2. Para # 2 - eu sou melhor mudar de implementação para AlarmManager? Notei que quando eu matar processos com TasKiller meus morre serviço e nunca é reiniciado, seria trabalho AlarmManager-base têm melhor chance de recuperação?
Foi útil?

Solução

Para o cenário # 1 que é o preço (se houver) eu estou pagando para usar o serviço para rede chama em vez de criar discussão de fundo diretamente na Atividade?

Estou assumindo que, desde que você disse este é um "serviço IDL", que este é o que eu chamo um serviço remoto -. Você estiver usando AIDL para definir uma interface que está sendo usado em limites de processo

Nesse caso, o custo é de vários MB de RAM para o segundo processo, além de um pouco de tempo de CPU para a sobrecarga IPC. Quanto que "pouco de tempo de CPU" é depende da freqüência com que é chamado.

Para # 2 - eu sou melhor fora mudando implementação de AlarmManager?

Geralmente, sim. Idealmente, os serviços são na memória tão pouco quanto possível.

Eu observei que quando eu matar processos com TasKiller meu serviço morre e nunca é reiniciado, seria trabalho AlarmManager-base têm melhor chance de recuperação?

Não, porque "Task Killer" aplicativos tendem a abusar de uma API (nas palavras de Dianne Hackborn) que vai matar tudo, incluindo os alarmes agendados. No momento, não há defesa confiável e eficiente contra os "assassinos tarefa" que eu estou ciente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top