Flutter iOS 进入后台,计时器未运行

问题描述 投票:0回答:1

嗨,我有一个用于 flutter 的 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: '');
  } 
}
flutter flutter-dependencies
1个回答
0
投票

对此没有直接的解决方案,我们需要通过播放无声音频来实现一个简单的技巧,这将使我们的应用程序在后台保持活动状态。此处添加说明:Medium Article.

© www.soinside.com 2019 - 2024. All rights reserved.