Analise as afirmações a seguir sobre a classe Handler e Asyn...

Próximas questões
Com base no mesmo assunto
Q1853883 Programação
Analise as afirmações a seguir sobre a classe Handler e AsyncTask do Android:
I. O método onPreExecute() da classe AsyncTask deve ser executado manualmente para dar início ao Thread.
II. O método sendMensage(msg) é um método da classe Handler que envia a mensagem informada para a fila de mensagens para ser processada assim que possível.
III. A classe AsyncTask gerencia internamente as threads e os handlers necessários para atualizar a interface.
IV. A classe AsyncTask contém métodos para atualizar o andamento (progresso) de uma tarefa, por exemplo, o progresso de um download.
Estão corretas apenas as afirmativas
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A - II, III e IV.

Para entender por que essa alternativa é a correta, vamos analisar cada afirmação:

  • Afirmação II: O método sendMessage(msg) é um método da classe Handler que, de fato, envia uma mensagem para a fila de mensagens, onde será processada pelo Looper associado à thread. Isso é utilizado frequentemente para comunicar-se com a thread principal a partir de uma thread secundária, permitindo a atualização da interface do usuário de forma segura.
  • Afirmação III: A classe AsyncTask simplifica o trabalho com threads no Android, gerenciando internamente as operações realizadas em uma thread secundária e as atualizações na thread principal. Isso permite executar operações em segundo plano e atualizar a interface do usuário sem precisar manipular diretamente threads e handlers.
  • Afirmação IV: A AsyncTask fornece métodos como onProgressUpdate(Progress...) e publishProgress(Progress...) que ajudam a atualizar a interface do usuário com o progresso de tarefas longas, como o download de um arquivo.

Em relação à Afirmação I, ela é incorreta porque o método onPreExecute() da classe AsyncTask é chamado automaticamente antes da execução da tarefa em segundo plano. Ele é executado na thread principal e é um bom lugar para configurar a UI, por exemplo, mostrando uma barra de progresso. Para iniciar uma AsyncTask, você deve chamar o método execute() na instância da sua AsyncTask, e o onPreExecute() será chamado em seguida.

Compreender o funcionamento de Handler e AsyncTask é importante para o desenvolvimento mobile no Android, principalmente quando se lida com operações que demandam tempo e não podem ser executadas na thread principal do aplicativo, evitando assim que a interface do usuário fique travada ou não responsiva.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

a questão trata sobre paralelismos e threads , ao programar em Android.

o Paralelismo depende da quantidade de núcleos de um processador e , em um caso de um celular com apenas um núcleo, torna-se inviável utilizar essa técnica. Em tese , seria impossível para um usuário ouvir música, abrir o navegador escrever um texto ao mesmo tempo.

pensando nisso , nasceu o PseudoParalelismo , que nada mais é que um sistema interno que permite executar as tarefas um pouco de cada vez em determinados tempos.

Para fazer isso no Android, usam-se Threads que criam linhas de execução a serem processadas em Paralelo.

Até ai tudo bem , não é um processo difícil criar essas threads. O problema ocorre quando precisamos atualizar a interface gráfica do usuário com as informações processadas, pois o trabalho é um pouco mais complexo, sendo necessário a utilização de handlers.

Para facilitar esse processo , foi criada a classe AsyncTask, que encapsula todo o procesao de criação de Handlers e Threads.

com esse entendimento , fica fácil perceber que não é um processo manual , como define a única assertiva errada ( I )

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo