以指定的时间间隔向 SQLite 数据库添加新行

Add a new row to SQLite database at a specified interval

我有一个支票簿跟踪应用程序,可以为帐户设置津贴和支出期限,例如每周 100 美元,或每月 200 美元。

我将数据存储在 table AccountSpendingPeriods 中,如下所示:

| _id | account_id | start_date | end_date |

当用户创建帐户时,我使用当前日期作为开始日期,并使用他们的消费期来确定结束日期。我 运行 遇到了一个问题,试图弄清楚 how/when 在新的消费期出现时向 table 添加一个新行。

我查看了一个 AlarmManager,但我在 documentation 中注意到它只有每天的时间间隔。我希望用户的消费期为:

因此,根据所选的消费期,我可能需要以不同的时间间隔更新数据库。这可以用 AlarmManager 实现吗?超过14天的个案如何处理?一个月不能简单的认为是30天,因为它们在一年中是不一致的。

我可以看到几个不同的选项。

一种方法是每天使用 AlarmManager,但在您的广播接收器中确定是否确实需要发生任何事情,也许在首选项或 table 中记录下一个周期开始日期。

所以对于一周的时间段,您在元数据中记录今天 + 7 天 table。然后,您的广播接收器将根据首选项检查日期,然后什么也不做,或者插入所需的行并更新下一个周期的开始日期。

其余选项依此类推。这允许您根据您想要的间隔逻辑来确定。


另一种选择是使用 set() or setExact() 简单地设置一次关闭警报,每次触发时,在所需的时间间隔设置下一个警报。