1

본질적으로 내 안드로이드 응용 프로그램 내부의 다른 응용 프로그램에 인터페이스를 제공하고 있습니다. 클라이언트는 특정 시간에 표시 될 새 로컬 알림을 예약 할 수있는 시스템을 요청했지만 모든 로컬 예약 알림을 취소 할 수도 있습니다. AlarmManager와 함께 사용하면서 PendingIntent 객체에 자동으로 (실제로 무제한) requestCodes (/ id)를 할당하는 방법이 있습니까?자동으로 requestCodes를 PendingIntent.getBroadcast에 할당 (AlarmManager 사용)

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
... 
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureTimeInMillis, pendingIntent); 
나는 또한 requestCodes의 트랙을 유지하지 않고 모든 보류중인 의도을 취소 할 수 있도록하려면

:

for(int requestCode : somehowGetAllUsedRequestCodes){ 
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    pendingIntent.cancel(); 
    alarmManager.cancel(pendingIntent); 
} 

수동으로 요청 코드를 추적하지 않고 그 일조차 할 수 있습니까?

답변

0

나중에 요청 코드를 데이터베이스에서 추적하거나 나중에 취소 할 수 있도록해야합니다. 데이터베이스에 값을 저장하는 경우 ID가 고유한지 확인할 수도 있습니다.

+0

충분합니다. 내부 추적이 있는지 궁금 해서요. 감사! –

+0

나는 SharedPreferences를 사용하여 끝냈다. –