【问题标题】:Setting specific Date for Status Bar Notification设置状态栏通知的具体日期
【发布时间】:2012-06-05 19:03:27
【问题描述】:

我只是希望用户使用 EditText 字段(或者可能是 Datepicker)选择一个日期,然后应用程序将其存储在 SQLite 数据库中。 (我只存储一个月中的哪一天,所以每个月的特定日期——1 日、10 日、22 日等——它都会弹出。)通知系统会出现并检查该日期并显示“提醒”状态栏中的通知,将他们直接带到应用程序以在按下时更新某些信息。

基于简单教程here(在“基础知识”部分),“何时”变量决定“何时”弹出通知?如果是这样,我可以用从数据库动态生成的日期变量来填充它吗?

【问题讨论】:

    标签: android date notifications statusbar


    【解决方案1】:

    通知系统出现并检查该日期并在状态栏中显示“提醒”通知,在按下时将它们直接带到应用程序以更新某些信息。

    如果您所说的“通知系统”是指“我编写的应用程序”,那么这是可能的。使用AlarmManager 在您指定的时间安排警报,将控制权路由到可以创建和显示您的NotificationBroadcastReceiver

    根据此处的简单教程(在“基础知识”部分),“何时”变量决定“何时”弹出通知?

    没有。它是与 Notification 关联的时间戳,用于显示目的(例如,可能出现在通知抽屉中)。

    【讨论】:

    • 这似乎是我需要的。就付诸实施而言,这似乎是从这个链接开始的好地方吗? (smartandroidians.blogspot.com/2010/04/…)
    • @KickingLettuce:应该没问题,虽然我没有仔细检查过。
    【解决方案2】:

    是的 Date 有一个方法可以将它的值作为一个 long 值返回给您,以自某个时间点以来的毫秒数表示(与 System.currentTimeinMillis() 的工作方式相同)

    long when = mDate.getTime();
    

    【讨论】:

      【解决方案3】:

      不,我认为“何时”应该表示事件发生的时间。见this documentation,搜索setWhen(long when)

      如果您不希望立即显示通知,则需要在长期运行的服务中设置自己的计时器或其他东西。如果您可以保持服务运行,请查看 Handler 类,尤其是 postAtTime() 方法。

      【讨论】:

      • 使用“长时间运行的服务”不适合“每个月的特定日期--1 日、10 日、22 日等--它会弹出”。这就是AlarmManager 的用途。
      • 甜蜜!好消息-我以前从未听说过AlarmManager-我的借口是我不必这样做。你应该把它写下来作为答案!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多