flutter run function every x amount of seconds

前端 未结 2 1589
不知归路
不知归路 2020-12-09 07:51

inside my flutter app I want to check my api every 10 seconds. I found this post to run a function every x amount of time and did the following:

class _MainP         


        
2条回答
  •  轮回少年
    2020-12-09 08:39

    build() can and usually will be called more than once and every time a new Timer.periodic is created.

    You need to move that code out of build() like

    Timer timer;
    
    @override
    void initState() {
      super.initState();
      timer = Timer.periodic(Duration(seconds: 15), (Timer t) => checkForNewSharedLists());
    }
    
    @override
    void dispose() {
      timer?.cancel();
      super.dispose();
    }
    

    Even better would be to move out such code from widgets entirely in an API layer or similar and use a StreamBuilder to have the view updated in case of updated data.

提交回复
热议问题