|
|
|
|
@ -28,7 +28,7 @@ class Tabs extends StatefulWidget {
|
|
|
|
|
_TabsState createState() => _TabsState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _TabsState extends State<Tabs> {
|
|
|
|
|
class _TabsState extends State<Tabs> with WidgetsBindingObserver {
|
|
|
|
|
// 初始化插件
|
|
|
|
|
DisableScreenshots _watermarkPlugin = DisableScreenshots();
|
|
|
|
|
|
|
|
|
|
@ -86,6 +86,33 @@ class _TabsState extends State<Tabs> {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
init();
|
|
|
|
|
|
|
|
|
|
tabsState = 1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
|
|
|
|
|
print("tabsState = $tabsState");
|
|
|
|
|
// 注册应用生命周期监听
|
|
|
|
|
WidgetsBinding.instance.addObserver(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//监听App生命周期回调
|
|
|
|
|
@override
|
|
|
|
|
void didChangeAppLifecycleState(AppLifecycleState state) async {
|
|
|
|
|
print("$state");
|
|
|
|
|
tabsState = -1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
|
|
|
|
|
switch (state) {
|
|
|
|
|
// 处于这种状态的应用程序应该假设他们可能在任何时候暂停
|
|
|
|
|
case AppLifecycleState.inactive:
|
|
|
|
|
break;
|
|
|
|
|
case AppLifecycleState.resumed: // 从后台切前台,界面可见
|
|
|
|
|
tabsState = 1; //Tabs页面是否在前台:1 前台resumed,0 paused,-1 处理中
|
|
|
|
|
break;
|
|
|
|
|
case AppLifecycleState.paused: // 界面不可见,后台
|
|
|
|
|
case AppLifecycleState.detached: // APP 结束时调用
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
print("tabsState = $tabsState");
|
|
|
|
|
// resumed:可见的,并能响应用户的输入。
|
|
|
|
|
// inactive:处在不活动状态,无法处理用户响应。
|
|
|
|
|
// paused:不可见并不能响应用户的输入,但是在后台继续活动中。
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
init() async {
|
|
|
|
|
@ -97,7 +124,10 @@ class _TabsState extends State<Tabs> {
|
|
|
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
|
FlutterBackgroundService.initialize(onStart);
|
|
|
|
|
if (g_bVoiceRemind) {
|
|
|
|
|
doRemind();
|
|
|
|
|
// 如果是安卓平台允许后台提醒,如果是IOS平台、必须在前台才提醒
|
|
|
|
|
if (Platform.isAndroid || (Platform.isIOS && 1 == tabsState)) {
|
|
|
|
|
doRemind();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Future.delayed(Duration(seconds: 1), () {
|
|
|
|
|
FlutterBackgroundService().sendData({"action": "stopService"});
|
|
|
|
|
@ -108,6 +138,8 @@ class _TabsState extends State<Tabs> {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void dispose() {
|
|
|
|
|
// 移除生命周期监听
|
|
|
|
|
WidgetsBinding.instance.removeObserver(this);
|
|
|
|
|
super.dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|