【问题标题】:Observe the date in android在android中观察日期
【发布时间】:2010-12-17 14:11:48
【问题描述】:

是否可以观察日期(例如,像 ContentObserver 一样),以便每次日期更改时(无论是因为时间过去还是用户手动更改),都会执行一些代码?

我需要它的原因如下:我有一个由光标支持的列表。游标是包含谓词date >= strftime('%Y-%m-%d','now') 的SQLite 语句的结果。因此,如果日期发生变化,则必须从列表中删除一些列表项(这显然会在光标上调用 requery() 后发生)。

【问题讨论】:

  • 日期不断变化……不存在现在时间等于现在+任何增量的情况。

标签: android date contentobserver


【解决方案1】:

只是在您的应用恢复时重新查询?这将确保始终针对当前日期进行查询,因为他们无法在不暂停您的应用程序的情况下更改日期。另一件需要注意的是,这似乎是一个真正的边缘案例。用户多久手动更改一次日期(不仅仅是一天中的时间,因为您只是比较 m、d、y)?

【讨论】:

    【解决方案2】:

    我建议使用Timer 类。

    应用启动后, 1) 计算到第二天睡觉所需的时间。
    2) 启动一个计时器以在那个时候“唤醒”,
    3)一旦该计时器完成,启动另一个计时器以在 24 小时后唤醒
    4) 执行你想运行的代码。
    5) 重复步骤 3。

    【讨论】:

    • 我也想过类似的方法(但使用 Androids Handler-Class)。问题是:如果用户更改日期会发生什么?另一个问题是,当时间与时间服务器同步时,线程可能会过早唤醒(对于我的情况来说,太晚总比太早好)。
    • 您可以使用更多策略,但这完全取决于您需要将其设置为多接近午夜。在问题中,您能否扩展您的要求?是否严格,日期已更改...您要完成什么?也许听日期更改不是正确的观看方式...
    猜你喜欢
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多