是否可以观察日期(例如,像 ContentObserver 一样),以便每次日期更改(因为时间已过或用户手动更改)时,某些代码会被执行?
我需要这个的原因如下:我有一个由光标支持的列表。游标是包含谓词的 SQLite 语句的结果date >= strftime('%Y-%m-%d','now')
。因此,如果日期更改,必须从列表中删除一些列表项(这显然会在调用requery()
光标后发生)。
是否可以观察日期(例如,像 ContentObserver 一样),以便每次日期更改(因为时间已过或用户手动更改)时,某些代码会被执行?
我需要这个的原因如下:我有一个由光标支持的列表。游标是包含谓词的 SQLite 语句的结果date >= strftime('%Y-%m-%d','now')
。因此,如果日期更改,必须从列表中删除一些列表项(这显然会在调用requery()
光标后发生)。
我建议使用Timer类。
应用程序启动后,1) 计算直到第二天睡觉所需的时间。
2)在那个时候启动一个计时器“唤醒”,
3)一旦该计时器完成,启动另一个计时器以在 24 小时后唤醒
4)执行您要运行的代码。
5) 重复步骤 3。
只是在您的应用程序恢复时重新查询?这将确保始终针对当前日期进行查询,因为他们无法在不暂停您的应用程序的情况下更改日期。另一件需要注意的是,这似乎是一个真正的边缘案例。用户多久手动更改一次日期(不仅仅是一天中的时间,因为您只比较 m、d、y)?