如何让应用程序在 Flutter 中保持锁屏状态?

miy*_*yav 7 android flutter

因此,我创建了一个应用程序,可以在间隔后播放声音 - 用于我的骑车和跑步程序。

但是当我锁定 Android 手机的屏幕时,该应用程序会在大约 15 秒后停止工作。

该应用程序的代码如下所示:

DateTime duration = new DateTime.fromMicrosecondsSinceEpoch(interval.inMicroseconds);
Timer counterSeconds;
Icon iconTimerStarter = new Icon(iconStart);
DateFormat minutesSeconds = new DateFormat("ms");
static AudioCache player = new AudioCache();

void startTimer(interval) {
  if (duration.millisecondsSinceEpoch == 0) {
    duration = new DateTime.fromMicrosecondsSinceEpoch(interval.inMicroseconds);
  }
  counterSeconds = new Timer.periodic(oneSec, (Timer t) => handleTick());
  _setIconForButton(new Icon(iconCancel));
}

void handleTick() {
  print(duration);
  setState(() {
    duration = duration.subtract(oneSec);
    if (duration.millisecondsSinceEpoch == 0) {
      stopTimer();
      if(sprint){
        player.play(alarmWalk);
        startTimer(Duration(seconds: 90));
      }else{
        startTimer(Duration(seconds: 30));
        player.play(alarmSprint);
      }
      sprint = !sprint;
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我使用的包:

import 'package:audioplayers/audio_cache.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
Run Code Online (Sandbox Code Playgroud)

我希望应用程序在手机屏幕锁定时继续计数并播放声音。(最小化时它工作正常,但当屏幕锁定时,它会在 15 秒后冻结)。

Oma*_*att 0

您可以尝试使用wakelock插件来启用/禁用唤醒锁,看看它如何适合您的用例。我建议访问类似的 Stack Overflow 帖子以了解更多详细信息/sf/answers/4681055991/