机器人AlarmManager不会触发警报

时间:2012-03-08 13:24:24

标签: android alarmmanager android-alarms

我有一个应用程序,它有一个可以发挥作用的警报系统,我复制了所有5个类,只是更改了数据库名称,但它不起作用,我可以通过你所有的代码,但我想听听是否有人之前有这样的事情。

当我调用新的ReminderManager(this).setReminder(mRowId,mCalendar);

rowID已满(某个数字)和mCalendar(有一个日期,我与其他应用程序的Mcalendar中的日期比较,而且格式相同)当我打电话给这一切时,一切都按照它应该进行它创建了待定的意图

public void  setReminder(Long taskId, Calendar when)
{
    Intent i= new Intent(mContext,OnAlarmReciver.class);
    i.putExtra(DatabaseIN.KEY_ROWID,(long)taskId);


    PendingIntent pi=PendingIntent.getBroadcast(mContext,0, i, PendingIntent.FLAG_ONE_SHOT);
    mAlarmManager.set(AlarmManager.RTC_WAKEUP,when.getTimeInMillis(),pi);

}
after this nothing happens... can anyone help

3 个答案:

答案 0 :(得分:0)

可能when尚未发生(将来太远)或已经发生过(在您致电set()之前已经过去了。)

或者,您的清单中可能没有定义OnAlarmReceiver

答案 1 :(得分:0)

PendingIntent.getBroadcast将重用匹配的pendingIntent,因此它可能已经触发了该挂起的意图(例如,可能来自你复制它的代码),并且由于你使用的是FLAG_ONE_SHOT标志,它只会触发一旦。

快速测试是删除FLAG_ONE_SHOT标志,看它是否会触发。如果这是问题,那么只需在PendingIntent.getBroadcast中使用不同的请求代码。

答案 2 :(得分:0)

尝试清理你的项目 - >干净,如果这无助于创建一个新项目并开始重新编写类..这对我有用:D