Sobes.tech
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.