///Widget
class AirCompressorPage extends StatefulWidget {
@override
_AirCompressorPageState createState() => _AirCompressorPageState();
}
///State
class _AirCompressorPageState extends BaseState<AirCompressorPage>
with WidgetsBindingObserver {
///initState
@override
void initState() {
super.initState();
//监听生命周期
WidgetsBinding.instance.addObserver(this);
//定时器
_initTimer();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
print("--" + state.toString());
switch (state) {
case AppLifecycleState.inactive: // 应用程序可见,不可操作。
break;
case AppLifecycleState.resumed: // 应用程序可见,可操作, 前台
_initTimer(); //创建并开启定时器
break;
case AppLifecycleState.paused: // 应用程序不可见,不可操作, 后台
_cancelTimer(); //取消并销毁定时器
break;
case AppLifecycleState.detached: // 虽然还在运行,但已经没有任何存在的界面。
break;
}
}
///dispose
@override
void dispose() {
//销毁监听生命周期
WidgetsBinding.instance.removeObserver(this);
//取消定时器
_cancelTimer();
super.dispose();
}
///build
@override
Widget build(BuildContext context) {
return Stack();
}
//定时器
Timer _timer;
///定时器 - 1分钟
void _initTimer() {
if (_timer == null) {
_timer = Timer.periodic(Duration(minutes: 1), (timer) {
print("定时器里面的方法");
} else {
print("定时器-不符合请求要求");
}
});
}
}
///取消定时器
void _cancelTimer() {
if (_timer != null) {
_timer.cancel();
_timer = null;
}
}
}
flutter-定时器和前后台
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言:我们常用的定时器有三种,本文主要介绍通过GCD定时器解决定时器进入后台、锁屏时无效的问题。看到很多其他的方法...
- 问题描述:点手机home键把当前程序切换到后台,隔了一会后再回到页面前台,发现倒计时时间还是之前切换到后台时的时间...
- 开篇 现在开始第二篇,哈哈。上一篇文章主要讲了:iOS生成带logo的二维码,区域截屏保存至相册 ,这一篇就来说说...