我有一个应用程序,它有一个可以发挥作用的警报系统,我复制了所有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
答案 0 :(得分:0)
可能when
尚未发生(将来太远)或已经发生过(在您致电set()
之前已经过去了。)
或者,您的清单中可能没有定义OnAlarmReceiver
。
答案 1 :(得分:0)
PendingIntent.getBroadcast将重用匹配的pendingIntent,因此它可能已经触发了该挂起的意图(例如,可能来自你复制它的代码),并且由于你使用的是FLAG_ONE_SHOT标志,它只会触发一旦。
快速测试是删除FLAG_ONE_SHOT标志,看它是否会触发。如果这是问题,那么只需在PendingIntent.getBroadcast中使用不同的请求代码。
答案 2 :(得分:0)
尝试清理你的项目 - >干净,如果这无助于创建一个新项目并开始重新编写类..这对我有用:D