2016-06-08 5 views
0

내 앱에서 빌린 책의 만료일에 알리는 기능을 만들려고합니다. 나는 아래,리스트 뷰에서 체크 박스와 함께 작동합니다 :안드로이드 다중 긴 날짜 알람 설정하기

No description

지금은 내가 그것을 가장 좋은 방법 할 수 있는지 궁금하네요

(날짜 표시 목적으로 만위한 것입니다). AlarmManager 및 BroadcastReceivers에 경험이 있지만 아직 명확한 순서도를 얻지 못했습니다.

그게 나는 각 책에 특정 알람을 설정해야합니다 때문에 특정 알람 요청 때 취소 할 수 있습니다. 또한 장치를 다시 사용할 때 (BOOT_COMPLETE 브로드 캐스트 호출) 모든 알람을 다시 활성화해야합니다.

PS : 일반적으로 경보는 현재 날짜 이후 1 주일로 설정됩니다.

PS2 :이를 위해 캘린더를 사용할 수 있습니까? 내 말은, 이렇게하면 모든 경보를 다시 활성화하거나 밀리 초 단위로 (expirationDate - currentDate)를 계산할 필요가 없다는 것입니다.

아이디어가있는 사람이 나에게 길을 보여 주려고 할 수 있습니까? 감사!

답변

1

저는이 책에 처음으로 알람을 설정하자 마자 각각의 책마다 고유 한 알람 ID를 부여하는 것이 중요하다고 생각합니다.

그런 다음 실행중인 알람 ID와 타임 스탬프 (아마도 SharedPreferences에 있음) 목록을 보관해야합니다. 당신은 알람 ID 관련하여 특정 알람 취소 할 수 있습니다 이와 같은 방법으로

: 당신은 BOOT 방송을 수신하면

public static void cancelAlarm(Context context, int alarmId) { 
    PendingIntent pi = PendingIntent.getService(context, alarmId, 
      new Intent(context, YourService.class), 
      PendingIntent.FLAG_NO_CREATE); 
    if(pi!=null) { 
     AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
     am.cancel(pi); 
    } 
} 

, 당신은 알람의 목록을 얻을 수가 된 SharedPreferences에서 타임 스탬프와 함께 ID와 각각의 알람 ID로 모든 알람을 시작하십시오.

+0

고마워요! 나는이 방법을 시도 할 것이다. –