2011-10-16 138 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); 

} 

回答