颤振如何强制计时器取消?

时间:2019-02-07 23:20:24

标签: dart flutter

我有一个通过按钮OnPressed调用的计时器:startTimeOut(60)。

startTimeout(mins) async {

  await subscription.resume();
  print("susbscription started");
  return new Timer(Duration(minutes: mins), handleTimeout);
}
void handleTimeout() async {
    await subscription.cancel().then((_) {

      print("susbscription canceled");
    });

但是用户可以通过调用startTimeOut(0)中止订阅流。在这种情况下,将打印“取消取消预订”,但第一个计时器呼叫仍处于活动状态,因此订阅将持续进行直到60分钟结束。然后再次打印“取消取消预订”。

我该如何覆盖/取消对Timer的首次调用?

1 个答案:

答案 0 :(得分:0)

您将需要保留对Timer实例的引用,并在随后对startTimeout的调用中调用cancel