web-dev-qa-db-ja.com

フラッターでx秒ごとにAPIからデータを取得するにはどうすればよいですか?

X秒ごとにAPIからデータをフェッチしてデータをライブウィジェットとして表示し、データが変更されたときにウィジェットをアニメーション化したいのですが、ストリームとストリームビルダーで試してみました。私。

これが私のコードです。

class Post{

  final String title;

  Post({this.title});

  factory Post.fromJson(Map<String, dynamic> json) {
    return Post(
      no: json['title']
    );
  }

}
class PostData {

  static String _url="https://jsonplaceholder.typicode.com/posts/1";

  static Future browse () async {

    http.Response response = await http.get(_url);

    Post post= Post.fromJson(json.decode(response.body));

    return post;

  }


  Stream<int> get getLiveData async* {
    yield await PostData.browse();
  }


 StreamBuilder<Post>(
 stream: getLiveData,
   builder: (context, snapshot) {
     return Text(snapshot.data.title)
  },
 )
6
ye yint

また、アプリがフォアグラウンドにあるときにのみこれを行う必要があります(不要なバッテリーの使用を防ぐため)。私のLifecycleAwareStreamBuilderを使用できます。使用方法の例があります here

要点に直接リンク

1
josue.0