【问题标题】:How to set AlarmManager for two independent timebase如何为两个独立的时基设置 AlarmManager
【发布时间】:2014-02-15 10:07:08
【问题描述】:

我正在开发一个会触发未来事件的应用。我设置了 AlarmManager 来实现这一点。代码很一般:

Intent alarmIntent = new Intent(this, MyService.class);
PendingIntent pintent = PendingIntent.getService(this, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, time, pintent);

我想看看如何将多个未来事件设置到 AlarmManager。未来事件的时间都是独立的,有的可能重复,有的可能一发。

任何机构对此功能有经验吗?你介意在这里分享一下吗?

【问题讨论】:

    标签: service time alarmmanager android-pendingintent


    【解决方案1】:

    您需要确保传递给AlarmManagerPendingIntent 对于每个事件都是唯一的。要使 PendingIntent 独一无二,您有一些选择:

    • 在对PendingIntent.getService() 的调用中使用唯一的requestCode 参数
    • 在您传递给PendingIntent.getService()Intent 中使用唯一的操作
    • 在您传递给PendingIntent.getService()Intent 中使用唯一的DATA

    注意:在传递给 PendingIntent.getService()Intent 中使用不同的 EXTRAS 不会使 PendingIntent 唯一!

    【讨论】:

      【解决方案2】:

      谢谢大卫。

      我通过使用独特的 requestCode 实现了这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-10
        • 1970-01-01
        • 2011-04-04
        • 1970-01-01
        • 1970-01-01
        • 2014-07-31
        • 2017-11-05
        相关资源
        最近更新 更多