当应用程序在flutter中关闭时如何运行倒计时器

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

Flutter 如何在应用程序关闭时运行倒数计时器,我尝试过,但每次从后台删除应用程序时,计时器都会从初始阶段开始

flutter background countdowntimer close-application
2个回答
0
投票

要在后台运行倒计时器,您可以使用

android_alarm_manager
包。该包允许您安排即使在应用程序关闭时也继续运行的任务。通过将此包添加到您的倒数计时器逻辑中,您可以确保计时器在后台保持运行。

请相应地实现以下代码

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Countdown Timer',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: CountdownScreen(),
    );
  }
}

class CountdownScreen extends StatefulWidget {
  @override
  _CountdownScreenState createState() => _CountdownScreenState();
}

class _CountdownScreenState extends State<CountdownScreen> {
  int _duration = 60;
  Timer _timer;

  @override
  void initState() {
    super.initState();
    startCountdown();
  }

  void startCountdown() {
    _timer = Timer.periodic(Duration(seconds: 1), (timer) {
      if (_duration <= 0) {
        timer.cancel();
        // Timer finished
        print('Countdown complete!');
      } else {
        setState(() {
          // Update timer display or perform other actions
          print('Time remaining: $_duration seconds');
          _duration--;
        });
      }
    });
  }

  @override
  void dispose() {
    _timer?.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Countdown Timer'),
      ),
      body: Center(
        child: Text(
          'Time remaining: $_duration seconds',
          style: TextStyle(fontSize: 24),
        ),
      ),
    );
  }
}

希望这对您有帮助。


0
投票

你得到正确答案了吗? 用正确的逻辑更新我们

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