2010-05-30 3 views
2

이벤트 애플리케이션을 만들고 있으며 사용자가 원하는 이벤트에 대한 알림을 설정할 수 있습니다. 그래서 alarmManager를 사용하여 알람을 만듭니다. 내 모든 활동을 취소 옵션을 넣어 응용 프로그램에서 생성 한 모든 경보를 취소 할 수 있습니다. 동일한 의도로 알람을 취소하는 일반적인 방법은 실제로 내가 취소하려는 것과 다른 활동으로 알람을 설정하는 데 도움이되지 않습니다. 내 애플리케이션에서 생성 한 모든 알람을 취소하는 방법이 있습니까? 감사합니다.Android가 모든 알람 설정 취소 중

답변

2

취소를 실행하는 코드가 알람의 발신자 일 필요는 없습니다. 코드는 경보를 생성 한 PendingIntent를 식별하여 취소 할 경보를 식별합니다. 다음과 같이 원본 PendingIntent의 팩시밀리를 '제조'할 수 있습니다. . .

String pname = this.getPackageName(); 

    // manufacture an appropriate context 
    Context mycontext = null; 
    try { 
     mycontext = createPackageContext(pname,CONTEXT_IGNORE_SECURITY); 
    } catch (NameNotFoundException e) { 
     // handle exception here 
     e.printStackTrace(); 
    } 
    // and generate a pendingintent 
    PendingIntent pi = PendingIntent.getService(mycontext, 
        0, new Intent(mycontext, myalarmreceiver.class), 0); 
    // Now use alarmmanager to terminate the alarm 
    AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
    am.cancel(pi); 

이 상황에서 작동하지 않을 수 있지만,이 방법을 시도하지 않은 경우, 그것은 시작하는 좋은 장소가 될 수 있습니다!