我创建了一个应用程序,用于在我的骑行和跑步过程中按时间间隔播放声音。
但是当我锁定我的安卓手机屏幕后,该应用程序会在大约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秒钟后就会冻结)。