Junior — Middle
Que métodos usar para lidar com solicitações em casos de conexão de internet instável?
sobes.tech IA
Resposta da IA
Em aplicações Android, quando a ligação à Internet é instável, são utilizados os seguintes métodos para processar pedidos:
- Retentativa (tentativas): repetição automática do pedido em intervalos definidos com atraso exponencial.
- Caching: armazenamento local de respostas (por exemplo, usando Room ou SharedPreferences) para exibir dados na ausência de rede.
- Tratamento de erros: informar o utilizador sobre problemas de rede e permitir re-tentar manualmente.
- Uso do WorkManager: para executar tarefas adiadas que requerem rede, quando a ligação for restabelecida.
Exemplo usando Retrofit e OkHttp para retentativas:
val okHttpClient = OkHttpClient.Builder()
.addInterceptor(RetryInterceptor(maxRetries = 3))
.build()
val retrofit = Retrofit.Builder()
.client(okHttpClient)
.baseUrl("https://api.example.com/")
.build()
Onde RetryInterceptor implementa a lógica de tentativas repetidas em caso de erros de rede.
Desta forma, a combinação de retentativas, caching e informação ao utilizador ajuda a tornar a aplicação mais resistente a problemas de Internet.