【问题标题】:Persistent background worker in Android Flutter App that fetch Web API every 30 secondsAndroid Flutter App 中的持久后台工作程序,每 30 秒获取一次 Web API
【发布时间】:2023-03-27 11:25:01
【问题描述】:

我正在 Flutter 上开发仅限 Android 的应用程序。我的应用需要每 30 秒在后台调用一些 Web API。即使用户或 Android 操作系统关闭了我的应用的主要活动,后台工作人员也应该继续运行。

我知道过于频繁地在后台执行某项操作会很快耗尽电池电量,这被认为是不好的做法。但是,我仍然需要每 30 秒执行一次。

我的应用的目标平台是 Android 7.0 或更高版本。

有什么想法可以在 Flutter 中实现吗?

【问题讨论】:

    标签: android flutter dart backgroundworker intervals


    【解决方案1】:

    尝试添加 Timer 我已经在我的应用中使用了 Timer(下面的代码)我的问题解决了

    计时器:倒计时计时器,可配置为触发一次或 反复。

    在你的类中声明定时器

     Timer timer;
     int counter = 0;
    

    为定时器创建initState()方法

     @override
      void initState() {
        super.initState();
        timer = Timer.periodic(
          Duration(seconds: 30),
          (Timer t) => addValue(),
        );
      }
    

    增加addValue的创建函数

    void addValue() {
        setState(() {
          counter++;
        });
        }
    

    您的页面每 30 秒自动重新加载一次

    或者您只需在 API 调用函数中使用 setState 方法,如下所示

    setState(() {  });
    

    【讨论】:

    • 当我的应用程序的主窗口不活动时,您的解决方案会在后台运行吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    相关资源
    最近更新 更多