Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振秒表背景运行_Flutter - Fatal编程技术网

Flutter 颤振秒表背景运行

Flutter 颤振秒表背景运行,flutter,Flutter,我正在尝试制作一个简单的秒表应用程序,到目前为止,我已经实现了一个在应用程序运行时工作的秒表,但我希望秒表在应用程序关闭时继续工作,然后在我再次打开应用程序时继续工作。我可以比较的一个类似的应用是RunKeeper,它跟踪你跑步活动的时间 有没有简单的插件可以用来解决我的问题,或者比这个更复杂 到目前为止,我已经尝试使用workmanager(Flatter插件),但是使用workmanager,我只能在给定的时间跟踪后台活动,而不是秒表活动的整个时间,这是我想要的。我通过使用流创建了一个秒表,

我正在尝试制作一个简单的秒表应用程序,到目前为止,我已经实现了一个在应用程序运行时工作的秒表,但我希望秒表在应用程序关闭时继续工作,然后在我再次打开应用程序时继续工作。我可以比较的一个类似的应用是RunKeeper,它跟踪你跑步活动的时间

有没有简单的插件可以用来解决我的问题,或者比这个更复杂


到目前为止,我已经尝试使用workmanager(Flatter插件),但是使用workmanager,我只能在给定的时间跟踪后台活动,而不是秒表活动的整个时间,这是我想要的。

我通过使用流创建了一个秒表,该流在Timer.periodic()的帮助下返回时间。如果您退出到手机的主屏幕,流将在后台继续运行

Stream<int> stopWatchStream() {
  StreamController<int> streamController;
  Timer timer;
  int counter = 0;

  void stopTimer() {
    if (timer != null) {
      timer.cancel();
      timer = null;
      counter = 0;
      streamController.close();
    }
  }

  void tick(_) {
    counter++;
    streamController.add(counter);
  }

  void startTimer() {
    timer = Timer.periodic(Duration(milliseconds: 10), tick);
  }

  streamController = StreamController<int>(
    onListen: startTimer,
    onCancel: stopTimer,
    onResume: startTimer,
    onPause: stopTimer,
  );

  return streamController.stream;
}
Stream stopWatchStream(){
流量控制器;
定时器;
int计数器=0;
void stopTimer(){
如果(计时器!=null){
timer.cancel();
定时器=空;
计数器=0;
streamController.close();
}
}
无效勾号(389;){
计数器++;
streamController.add(计数器);
}
void startTimer(){
计时器=计时器。周期性(持续时间(毫秒:10),勾选);
}
streamController=streamController(
onListen:startTimer,
onCancel:stopTimer,
简历:startTimer,
onPause:stopTimer,
);
返回streamController.stream;
}

我使用流创建了一个秒表,该流在Timer.periodic()的帮助下返回时间。如果您退出到手机的主屏幕,流将在后台继续运行

Stream<int> stopWatchStream() {
  StreamController<int> streamController;
  Timer timer;
  int counter = 0;

  void stopTimer() {
    if (timer != null) {
      timer.cancel();
      timer = null;
      counter = 0;
      streamController.close();
    }
  }

  void tick(_) {
    counter++;
    streamController.add(counter);
  }

  void startTimer() {
    timer = Timer.periodic(Duration(milliseconds: 10), tick);
  }

  streamController = StreamController<int>(
    onListen: startTimer,
    onCancel: stopTimer,
    onResume: startTimer,
    onPause: stopTimer,
  );

  return streamController.stream;
}
Stream stopWatchStream(){
流量控制器;
定时器;
int计数器=0;
void stopTimer(){
如果(计时器!=null){
timer.cancel();
定时器=空;
计数器=0;
streamController.close();
}
}
无效勾号(389;){
计数器++;
streamController.add(计数器);
}
void startTimer(){
计时器=计时器。周期性(持续时间(毫秒:10),勾选);
}
streamController=streamController(
onListen:startTimer,
onCancel:stopTimer,
简历:startTimer,
onPause:stopTimer,
);
返回streamController.stream;
}

我也有同样的问题您是否找到解决方案对此问题进行分级如果您找到任何解决方案让我知道SimonI也有同样的问题您是否找到解决方案对此问题进行分级如果您找到任何解决方案让我知道SimonI已经测试了您的代码,并且当应用程序最小化时它确实有效,但是如果你切换到一个新页面,你知道如何保持计时器运行吗?我已经测试了你的代码,当应用程序最小化时它确实工作,但是如果你切换到一个新页面,你知道如何保持计时器运行吗?