首页 > 解决方案 > Flutter iOS进入后台,计时器未运行

问题描述

嗨,我有一个用于颤振的 iOS 应用程序。我有一个计时器计划每 30 秒运行一次以显示推送通知。当应用程序处于前台时,它工作正常。

当应用程序进入后台 ( AppLifecycleState.paused) 时,推送通知不再每 30 秒出现一次。进入后台后计时器是否停止运行?我做错了吗?

import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';

class _HomeState extends State<Home>{ 
  Timer notiTimer;

  @override
  initState() {
    super.initState();

    startTimer();
  }

  @override
  void dispose(){
    notiTimer.cancel();
  }

  void startTimer(){
    notiTimer = Timer.periodic(Duration(seconds: 30), (timer) {
      showNotification()
    });
  }

  Future<void> showNotification() async {
    var androidPlatformChannelSpecifics = AndroidNotificationDetails(
        'your channel id', 'your channel name', 'your channel description',
        importance: Importance.Min, priority: Priority.Min, ticker: 'ticker');
    var iOSPlatformChannelSpecifics = IOSNotificationDetails();

    var platformChannelSpecifics = NotificationDetails(
        androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    await _flutterLocalNotificationsPlugin.show(
        0,
        'Mobile App',
        'Notification Appear',
        platformChannelSpecifics,
        payload: '');
  } 
}

标签: flutterflutter-dependencies

解决方案


推荐阅读