【问题标题】:How to keep app going on lock screen in Flutter?如何在 Flutter 中保持应用程序在锁屏状态下运行?
【发布时间】:2020-08-06 16:52:33
【问题描述】:

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

但是当我锁定我的安卓手机屏幕时,应用程序会在大约 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;
    }
  });
}

我使用的包:

import 'package:audioplayers/audio_cache.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

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

【问题讨论】:

标签: android flutter


【解决方案1】:

您可以尝试使用wakelock plugin 来启用/禁用唤醒锁,看看它如何适合您的用例。我建议访问这个类似的 Stack Overflow 帖子以获取更多详细信息https://stackoverflow.com/a/66872228

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2018-04-27
    • 1970-01-01
    • 2018-11-09
    相关资源
    最近更新 更多