Analise as afirmações a seguir sobre o uso de Threads, Handl...
I. Nas versões mais atuais do Android, se o código fizer uma operação de I/O na thread principal, o sistema vai lançar a exceção NetWorkOnMainThreadException.
II. No Android, cada aplicação é executada em um único processo e cada processo, por sua vez, tem uma Thread dedicada, a qual é responsável por desenhar e tratar todos os eventos da interface gráfica e é conhecida como Main Thread ou UI Thread.
III. A classe Handler é utilizada para enviar uma mensagem para ser processada pela UI Thread que, geralmente, é um código que vai atualizar a view.
IV. A Main Thread é utilizada para gerenciar todos os eventos e funções da aplicação e a UI Thread é responsável apenas pela interface da aplicação.
Estão corretas apenas as afirmativas
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - I, II e III.
Vamos entender o porquê desta alternativa ser a correta analisando cada uma das afirmações dadas:
Afirmativa I: Nas versões mais atuais do Android, se o código fizer uma operação de I/O na thread principal, o sistema vai lançar a exceção NetWorkOnMainThreadException. Esta afirmação é verdadeira. No Android, operações de rede (I/O) que podem demorar para serem concluídas são restritas à execução em threads separadas da principal para evitar que a interface do usuário fique congelada. Caso tais operações sejam realizadas na thread principal (também conhecida como UI Thread), o Android lança a exceção mencionada para prevenir essa prática inadequada.
Afirmativa II: No Android, cada aplicação é executada em um único processo e cada processo, por sua vez, tem uma Thread dedicada, a qual é responsável por desenhar e tratar todos os eventos da interface gráfica e é conhecida como Main Thread ou UI Thread. Esta afirmação é verdadeira. A Main Thread, ou UI Thread, é de fato dedicada para lidar com operações de interface do usuário e é o local onde os eventos de interação do usuário são processados. O Android impõe que todas as atualizações da interface do usuário sejam realizadas nesta thread para garantir uma experiência de usuário suave e responsiva.
Afirmativa III: A classe Handler é utilizada para enviar uma mensagem para ser processada pela UI Thread que, geralmente, é um código que vai atualizar a view. Esta afirmação também é verdadeira. Um Handler é frequentemente usado para agendar a execução de um Runnable ou enviar uma Message a uma thread associada a esse Handler, geralmente a UI Thread. Isso permite que operações que não podem ser realizadas diretamente na UI Thread devido a restrições de tempo de execução ou outras regras sejam agendadas para serem executadas na UI Thread em um momento seguro.
Afirmativa IV: A Main Thread é utilizada para gerenciar todos os eventos e funções da aplicação e a UI Thread é responsável apenas pela interface da aplicação. Esta afirmação é falsa. Na realidade, a Main Thread e a UI Thread são a mesma coisa no contexto do Android. A UI Thread é a thread principal do aplicativo que lida tanto com a interface do usuário quanto com os eventos. Portanto, não existe essa divisão de responsabilidades entre duas threads distintas como sugere a afirmativa.
Com base nessa análise, concluímos que as Afirmativas I, II e III estão corretas, e a Afirmativa IV está incorreta, tornando a alternativa D a resposta correta.
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
IV está errada. Ui thread e Main thread são sinônimos e são responsáveis por disparar eventos para elementos de interface.
I, II e III estão corretas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo