2011-10-16 6 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를 사용하여 알람을 되 찾을 수 있습니까?

편집 : 방금 현재 보류중인 의도를 취소하기 위해이 방법을 만들었습니다.

어쩌면 이렇게 할 수 있습니다. http://developer.android.com/reference/android/app/AlarmManager.html#cancel(android.app.PendingIntent)

당신이 알람 매니저 전에 잘 살고있는 같은 PendingIntent와 :

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); 

} 

답변

1

당신은 취소 메서드를 호출해야합니다. (또는 더 나은, 이전에 설정 한 내용과 일치하는 의도)

+0

도움 주셔서 감사합니다 –

관련 문제