如何设置一个或多个天以在警报管理器中每周重复一次警报以防抖动?

问题描述

我想创建一个每周警报,在给定的几天内定期重复。我尝试将android_alarm_manager用于此任务。使用此功能,我可以通过指定开始日期和7天的持续时间来创建定期警报。

void _createPeriodicAlarm() async {
    final _id = Random().nextInt(pow(2,31));
    await AndroidAlarmManager.periodic(const Duration(days: 7),_id,_printHello,startAt: DateTime(2020,8,1)); }

但是我想要的是,让用户选择一个或多个天来每周重复一次警报。如何使用android_alarm_manager或任何其他此类方法来做到这一点?

解决方法

好吧,您可以在用户选择的每一天重复该过程。保留为7天中的每一天分配的_id,以便您可以在用户禁用特定天数时取消特定天数。

顺便说一下,DateTimea weekday property指示它代表一周中的哪一天。因此,例如,要查找下一个星期一,可以在DateTime.now()之前增加一天,直到weekday == 1