2015-04-19 22 views
0

我有一個支票簿跟蹤應用程序,允許爲一個帳戶設置津貼和支出期限,例如$ 100/week或$ 200/month。以指定的時間間隔向SQLite數據庫添加新行

我在一個表AccountSpendingPeriods存儲數據是這樣的:

| _id | account_id | start_date | end_date | 

當用戶創建一個帳戶,我用的是當前日期爲起始日期和使用他們的消費週期來確定結束日期。我遇到了一個問題,試圖找出在新的支出週期出現時如何/何時向該表添加新行。

我看着一個AlarmManager,但我注意到在documentation它只有間隔到每一天。我希望用戶對消費的時期:

  • 週刊
  • 雙週
  • 每月
  • 季度

所以根據所選擇的消費時期,我可能需要以不同的時間間隔更新數據庫。這是可能的與一個AlarmManager?我如何處理超過14天的案件?一個月不能僅僅考慮30天,因爲它們在一年中不一致。

回答

3

我可以看到幾個不同的選項。

一種方法是每天使用AlarmManager,但在廣播接收器中確定是否有任何實際需要發生的情況,可能是在首選項或表中記錄下一個週期開始日期。

因此,對於每週時間段,您在元數據表中記錄今天+ 7天。然後,您的廣播接收機會根據首選項檢查日期,並且不執行任何操作,或者插入所需的行並更新下一個週期開始日期。

繼續其餘選項。這使您可以根據您希望的間隔邏輯來確定。


另一種選擇是簡單地設置一次關閉使用set()setExact()報警和每次觸發時,在所要求的時間間隔設置下一次報警。

+0

我喜歡每天檢查的想法,我會玩這個想法,我會告訴你這是怎麼回事。我從來沒有使用AlarmManager,所以它會佔用我一點時間。 – AdamMc331

相關問題