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

时间:2015-04-19 21:56:46

标签: android sqlite android-sqlite alarmmanager

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

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

| _id | account_id | start_date | end_date |

当用户创建帐户时,我使用当前日期作为开始日期,并使用他们的支出期来确定结束日期。我遇到了一个问题,试图弄清楚当新的支出期出现时如何/何时向该表添加新行。

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

  • 每周
  • 每两周
  • 每月
  • 季刊
  • 每年

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

1 个答案:

答案 0 :(得分:3)

我可以看到几种不同的选择。

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

因此,对于每周一段时间,您今天在元数据表中记录+ 7天。然后,您的广播接收者将根据偏好检查日期,并且不执行任何操作,或插入所需的行并更新下一个期间的开始日期。

等等剩下的选项。这允许您根据您想要的间隔确定任何逻辑。


另一种选择是使用set()setExact()简单地设置一次警报,每次触发时,按照要求的间隔设置下一个警报。