Pergunta

Eu estou procurando o mais adequado classe para ser um escalonador para AsyncTasks invocados a partir de minhas Atividades.

Eu acho que poderia ser um dos seguintes:

  1. subclasse de Aplicação;
  2. subclasse de Serviço;
  3. a minha própria estática coisas.

Como para mim - é simlier para implementar a 3ª opção.Mas a questão é será que vai ser mais "morte-resistente" de Serviço ou Aplicativo?Também é muito interessante o que irá viver mais - Aplicação ou Serviço?Meu palpite é que o Aplicativo vidas desde que a aplicação de tarefas, em termos do Android) processo vidas.

Então, basicamente eu preciso variar as opções por sua "morte " resistentes" de qualidade, porque eu gostaria de confiar mais "estático" coisa".

ATUALIZAÇÃO:

Originalmente, a questão foi colocada em 2010, quando (1) o Android foi a nova plataforma para desenvolvedores e (2) o Google documentação foi muito vago (em alguns casos foi até enganosas) sobre o app componentes ciclos de vida e toda a aplicação do processo de ciclo de vida.

Foi útil?

Solução

Você deve definitivamente usar um Serviço.

A principal razão por trás disso - Service tem a sua própria documentado ciclo de vida, enquanto a Aplicação não. Application instância, como qualquer uma de suas variáveis estáticas, pode ser morto por sistema quase a qualquer hora, você não receberá nenhum retorno de chamada e não pode parar este processo.Assim, os dados não salvos (todas as variáveis estáticas) serão perdidas.

Por outro lado, Service não pode ser morto pelo sistema silenciosamente, pelo menos, onDestroy() o método deve ser chamado pela primeira vez.Tendo como retorno de chamada, você pode salvar seu estado para algumas memória persistente (como SharedPreferences, arquivo, banco de dados, etc) e restaurar o estado próxima vez que seu Aplicativo ou Serviço é iniciado.

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