如何在Flutter中让应用程序在锁定屏幕时继续运行?

7

我创建了一个应用程序,用于在我的骑行和跑步过程中按时间间隔播放声音。

但是当我锁定我的安卓手机屏幕后,该应用程序会在大约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秒钟后就会冻结)。

你试过这个吗?https://dev59.com/6lUL5IYBdhLWcg3w27Nq - J.John
如果我理解正确的话,它只是防止手机锁屏,而我希望应用程序在锁屏时继续工作。 - miyav miyav
好的,这个怎么样?https://dev59.com/WVgQ5IYBdhLWcg3w-o5w - J.John
我稍后会阅读它。 - miyav miyav
如果您关闭应用程序会发生什么?它会解锁吗? - Dani
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接