IntentService cenários de aplicação prática

    IntentService comparação com o pai Service, a principal característica é a sua função onHandleIntent callback pode ser demorado operação diretamente, sem a necessidade de fios re-aberto. O princípio é IntentService variável de membro é inicializado quando Handler já pertence ao segmento de trabalho, depois de handleMessage, incluindo onHandleIntent outras funções executadas no segmento de trabalho.

    Se você souber de IntentService de limitado, será um IntentService ponto muito triste tipo de visão, porque o serviço de operação demorada nos tópicos abertos sem problemas. Eu também tive esse ponto de vista, isso raramente é usado IntentService.

    Mas IntentService há uma característica que é chamado várias vezes a função onHandleIntent (isto é, há mais demoradas tarefas a serem executadas), mais demoradas tarefas são executadas na ordem. O princípio é associado com a sua lagarta da Handler, Handler embutido fila de tarefas realizadas tomando tarefas são executados sequencialmente.

    Este recurso vai resolver o problema mais demoradas tarefas exigidas na ordem de execução. Se apenas o serviço, abra vários segmentos para executar a operação demorada, é difícil de gerir.

    Por exemplo, em fazer antes do aplicativo, há uma demanda por um determinado período de tempo é salvo imagem de download do usuário exibida imageView após o download estiver concluído, a necessidade geral de baixar a imagem há muitos, cada um a imagem seguinte é um fio, imediatamente após o download de exibição fora, então definitivamente quero baixar é baixado de acordo com a ordem, para que a experiência do usuário é melhor. A abordagem foi defeituoso, abrir diretamente vários segmentos para download, o download está completo antes de uma imagem na frente, outros segmentos devem esperar, embora esta função também pode ser alcançado, mas não alta eficiência, mesmo ANR (a lógica de código específico é possível Se o fio fica atrás da cpu, mas não na frente do quadro está terminado, espera; não antes de assumir que uma imagem for concluída, enquanto a traseira da rosca foi obtido cpu, há um problema).

    Se este cenário é muito fácil de usar IntentService, cada tarefas que consomem são realizados sequencialmente na ordem, não tem que se preocupar com a lógica ou desempenho ocorre, é IntentService de valor.


Resumo: Android Muitas classes são projetados para determinados cenários comuns, como neste artigo IntentService e handlerThread e outros escritos antes da classe, geralmente acumulam, a fim de ser resolvido mais tarde, quando encontrou algumas questões difíceis.

Publicado 11 artigos originais · ganhou elogios 2 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/zhengyin_tmac/article/details/52446696
Recomendado
Clasificación