如何在午夜触发功能
How to trigger a function at midnight
我的应用程序应该在以下两种情况之一为真时触发函数“dayChange()”:
- 自应用上次激活(打开或恢复)以来已经过了午夜
- 该应用程序在午夜处于活动状态
"dayChange()" 将一个新对象放入列表并将该列表保存到我的共享首选项实例中。
我需要的是: 我不是在寻求一个完整的解决方案(因此没有代码),而是一些基本的理解和 Google 的方向。
我现在所在的位置: 我接近 1 的解决方案。我保存 DateTime.now() 并在每次应用程序启动时通过 SharedPreferences 加载它打开。然后我检查日期是否已更改。我不太确定如何处理恢复,但我相信我可以通过谷歌搜索生命周期的东西来解决这个问题。
因为 2 事情变得更加复杂。
- 我有一个可行的解决方案,我启动一个每秒执行一次检查的计时器;但它确实有问题,而且感觉不优雅。到目前为止,这仍然是我最有希望的方法。
- 在谷歌搜索如何使用 flutter 编写警报程序时,我很快进入了一个非常棘手的领域(必须在 iOS 和 Android 上以不同的方式进行;访问系统内容;处理权限;超出范围到目前为止我已经完成了)。
- 我发现了一个名为“applicationSignificantTimeChange”的东西......但后来谷歌搜索感觉完全是死胡同,或者我错过了另一个搜索词。
解决这个问题的好方法是什么?我愿意深入挖掘以解决问题,但我不想在不知道鹅是我真正需要的情况下继续寻找野鹅。
如文档所述here。
DateTime current = DateTime.now();
Stream timer = Stream.periodic( Duration(seconds: 1), (i) {
current = current.add(Duration(seconds: 1));
return current;
});
timers.listen((data)=> print(data));
否则打开时,只需计算 date/time。
我的应用程序应该在以下两种情况之一为真时触发函数“dayChange()”:
- 自应用上次激活(打开或恢复)以来已经过了午夜
- 该应用程序在午夜处于活动状态
"dayChange()" 将一个新对象放入列表并将该列表保存到我的共享首选项实例中。
我需要的是: 我不是在寻求一个完整的解决方案(因此没有代码),而是一些基本的理解和 Google 的方向。
我现在所在的位置: 我接近 1 的解决方案。我保存 DateTime.now() 并在每次应用程序启动时通过 SharedPreferences 加载它打开。然后我检查日期是否已更改。我不太确定如何处理恢复,但我相信我可以通过谷歌搜索生命周期的东西来解决这个问题。
因为 2 事情变得更加复杂。
- 我有一个可行的解决方案,我启动一个每秒执行一次检查的计时器;但它确实有问题,而且感觉不优雅。到目前为止,这仍然是我最有希望的方法。
- 在谷歌搜索如何使用 flutter 编写警报程序时,我很快进入了一个非常棘手的领域(必须在 iOS 和 Android 上以不同的方式进行;访问系统内容;处理权限;超出范围到目前为止我已经完成了)。
- 我发现了一个名为“applicationSignificantTimeChange”的东西......但后来谷歌搜索感觉完全是死胡同,或者我错过了另一个搜索词。
解决这个问题的好方法是什么?我愿意深入挖掘以解决问题,但我不想在不知道鹅是我真正需要的情况下继续寻找野鹅。
如文档所述here。
DateTime current = DateTime.now();
Stream timer = Stream.periodic( Duration(seconds: 1), (i) {
current = current.add(Duration(seconds: 1));
return current;
});
timers.listen((data)=> print(data));
否则打开时,只需计算 date/time。