2011-12-13 4 views
1

여러 알람을 설정할 수있는 응용 프로그램이 있고 매일 알람을 반복하며 정상적으로 작동합니다. 다음 날 12:00 a.m.에 해고되도록 설정된 알람을 삭제하는 경우, 알람이 삭제 된 경우에도 12:00 a.m에 해고됩니다. 문제가있는 곳이면 누구나 알 수 있습니까?알람 삭제

SQLite를 사용하여 알람을 저장, 검색 및 삭제합니다.

이것은 내가 모든 알람에 다른 요청 코드를 제공하고있어 AlarmManager의 일부입니다

Intent i = new Intent(mContext, Daily_OnAlarmReceiver.class); 
    i.putExtra(RemindersDbAdapter.KEY_ROWID_DAILY, (long)reminderId); 
    int Daily_requestCode = reminderId.intValue(); 

    PendingIntent pi = PendingIntent.getBroadcast(mContext, Daily_requestCode, i, PendingIntent.FLAG_CANCEL_CURRENT); 

    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi); 

와 나는 또한 통지를 같은 방법으로하고 있어요. 모든 알림에 다른 요청 코드를 제공하고 있습니다.

경보를 삭제하더라도 누가 그 경보를 발령하는지 알 수 있습니까? 당신이 다른 requestId 값을 사용하고 있지만 AlarmManager

Intent intent = new Intent(this, AlarmReceive.class); 
PendingIntent sender = PendingIntent.getBroadcast(this, 
       0, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

alarmManager.cancel(sender); 

답변

4

전화 cancel()AlarmManagercancel() 메소드는 사용자가 지정한 PendingIntent이 동일 확인합니다. 그러나 필터 평등은 documentation에 따라 추가 데이터에 의존하지 않습니다. 따라서 모두 취소 한 다음 데이터베이스를 반복하여 다시 추가해야합니다 (삭제하려는 항목을 건너 뜁니다).

+0

내 질문에 답변 해 주셔서 감사합니다. 나는 그것을 시도했다. 그러나 이것은 모든 경보가 발화하지 않게 할 것이다. 삭제 된 경보에 대해서만 호출하는 방법? – zoza