2
respostas

Atualização atomatica no flutter

Tenho um projeto que puxo dados de uma api e ela sempre fica atualizando os dados, procurei como fazer isso e vi em um outro forúm da alura com o segunte código:

import 'dart:async'; import 'package:http/http.dart' as http;

Timer timer;

void startTimer() { timer = Timer.periodic(Duration(minutes: 1), (Timer t) => updateData()); }

void stopTimer() { if (timer != null) { timer.cancel(); } }

void updateData() async { // Faz a requisição HTTP para obter as informações atualizadas final response = await http.get('https://sua-api.com/dados');

}

e naõ deu certo, preiso de uma ajuda para poder pagar os dados da api a cada 1 segundo. Aguardo uma resposta.

2 respostas

Olá, Lucas!

Pelo que entendi, você quer atualizar os dados da sua API a cada segundo, certo? No código que você compartilhou, a atualização está programada para acontecer a cada minuto. Para alterar para cada segundo, você precisa modificar a duração no método Timer.periodic.

Aqui está um exemplo de como você pode fazer isso:

void startTimer() {
  timer = Timer.periodic(Duration(seconds: 1), (Timer t) => updateData());
}

Neste exemplo, simplesmente substituímos 'minutes' por 'seconds'. Isso fará com que a função updateData seja chamada a cada segundo, em vez de a cada minuto.

Porém, vale lembrar que fazer requisições a cada segundo pode sobrecarregar o servidor, dependendo da quantidade de dados que você está puxando e do número de usuários que estão fazendo a mesma coisa ao mesmo tempo. Portanto, é importante considerar a eficiência e a escalabilidade do seu aplicativo.

Espero ter ajudado e bons estudos!

Obriagdo pela resposta, mas esqueci de mensionar um detalhe, já havie feito isso mas não funcionou, no lugar do "updateData()", coloquei um print('Passou aqui') e não printava nada.