Android Flutter App 中的持久后台工作程序,每 30 秒获取一次 Web API
Posted
技术标签:
【中文标题】Android Flutter App 中的持久后台工作程序,每 30 秒获取一次 Web API【英文标题】:Persistent background worker in Android Flutter App that fetch Web API every 30 seconds 【发布时间】:2021-10-03 10:56:41 【问题描述】:我正在 Flutter 上开发仅限 android 的应用程序。我的应用需要每 30 秒在后台调用一些 Web API。即使用户或 Android 操作系统关闭了我的应用的主要活动,后台工作人员也应该继续运行。
我知道过于频繁地在后台执行某项操作会很快耗尽电池电量,这被认为是不好的做法。但是,我仍然需要每 30 秒执行一次。
我的应用的目标平台是 Android 7.0 或更高版本。
有什么想法可以在 Flutter 中实现吗?
【问题讨论】:
【参考方案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(() );
【讨论】:
当我的应用程序的主窗口不活动时,您的解决方案会在后台运行吗?以上是关于Android Flutter App 中的持久后台工作程序,每 30 秒获取一次 Web API的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 持久化_shared_preferences
签名发布后尝试调试时 Flutter android App 崩溃
无法解析 Flutter 应用程序的 android/app/build.gradle 文件中的符号 GradleException
Android项目创建Flutter module后运行编译失败问题