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

Это может не работать в вашей ситуации, но если вы не пробовали этот подход, это может быть хорошим началом!

Смежные вопросы