///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;
}
}
}
网友评论