2011-10-16 98 views
0

我有一个方法,使用来自我创建的SQLite数据库的信息设置警报。如何在设置后取消闹钟?

public void scheduleItem(Long textId, Calendar when){ 
    Intent i = new Intent(mContext, onAlarmReceiver.class); 
    i.putExtra(DbAdapter.KEY_ROWID, textId); 
    PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT); 
    mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi); 
    Log.e("SchedulerManager", "Task scheduled"); 

现在,正如你所看到的,它响应数据库。现在,如果数据库中的项目被用户删除。我不想让闹钟仍然设置为已删除的项目。

如何使用在我的scheduleItem()方法中作为参数的Long textId将警报拉回?

编辑:我刚创建此方法来取消当前挂起的意图。

也许这样做。

public void cancelAlarm(Long textId){ 
    Intent g = new Intent(mContext, onAlarmReceiver.class); 
    g.putExtra(SmsDbAdapter.KEY_ROWID, textId); 

    PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, g, 0); 

    mAlarmManager.cancel(pi); 

} 

回答