O que há de mais "morte-resistente" componente no Android?
-
26-09-2019 - |
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:
- subclasse de Aplicação;
- subclasse de Serviço;
- 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.
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.