首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重复告警通知(Android)

重复告警通知(Android)
EN

Stack Overflow用户
提问于 2012-06-09 03:33:41
回答 1查看 648关注 0票数 0

这样行得通吗?

代码语言:javascript
复制
  public void setRepeatingAlarm() {

    ArrayList<Integer> AlarmDays = datasource.getDays();
    final int _id = (int) System.currentTimeMillis();

    Log.d("AlarmManageDebt", String.valueOf(AlarmDays));

    for (int i : AlarmDays) {

        Calendar cal = Calendar.getInstance();
        if (cal.get(Calendar.SECOND) >= 30)
            cal.add(Calendar.MINUTE, 1);
        cal.set(Calendar.SECOND, Integer.valueOf(i));

        Intent intent = new Intent(this, TimeAlarm.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, _id,
                intent, PendingIntent.FLAG_CANCEL_CURRENT);
        am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                60 * 1000, pendingIntent);
    }
}

我对pendingIntent有一个惟一的ID,警报中唯一不同的是"i“变量,它根据数据库行给它新的秒数(最终,这将是每日通知,而"i”将代表一天,而不是一秒)。但这是为了测试目的。我已经确认在"i“中传递了正确的数据。我只是不确定这是否会产生三个不同的警报?

那么,我是否在这里创建了多个警报?或者每个循环都有效地替换了刚刚创建的循环?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-09 04:53:40

根据文档上的说法,我可以想象您将只有一个AlarmManager:

“如果已经为此意图计划了一个警报(filterEquals( Intent )定义了两个意图的相等),则它将被删除并替换为此警报。”http://developer.android.com/reference/android/app/AlarmManager.html

下面是如何确定意图相等的:http://developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent

基于这一点,我会说不,即使您的PendingIntent有唯一的I。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10955032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档