2016-05-11 3 views
0

Я работаю над приложением, которое получает время будильника из базы данных каждые 2 часа ночи, а затем в указанное время, когда активность отображается, мое приложение работает нормально, но когда я вручную меняю данные/время устройство, предыдущие аварийные сигналы запускаются, и я должен помешать этому.Отмена сигналов тревоги от AlarmManager

Вот мой PendingIntent:

Intent i = new Intent(mContext, AlarmReceiver.class); 
    PendingIntent pi = PendingIntent.getBroadcast(G.context, _id, i, 
       PendingIntent.FLAG_UPDATE_CURRENT); 

Который каждый _id уникален, и когда я делаю приемник для смены даты события до моей тревоги отменить метод выстрелил предыдущие сигналы тревога уходят!

Может ли какой-нибудь орган помочь решить эту проблему?

ответ

0

Попробуйте этот код:

Intent intent = new Intent(this, Mote.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1253, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.cancel(pendingIntent);

0

Для отмены сигнала будильника:

Intent intent = new Intent(this, Mote.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1253, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.cancel(pendingIntent); 

Редактировать

Ну вы можете искать ответ и изменить в соответствии с вашими требованиями:

How to stop Android AlarmManager when there is a manual system time change?

AlarmManager: how to schedule a daily alarm and deal with time changes

+0

привет пожалуйста, обратите внимание, что я хочу, чтобы отменить сигнал тревоги, когда системная дата/время меняется !! перед запуском этого кода срабатывает будильник! –

+0

@SeyedMassoudMotallebi Проверить для редактирования. и скажите, полезны ли ссылки. –

+0

привет здесь код для отмены тревоги: –

0
Intent intent1 = new Intent(G.context, DailyAlarmReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(G.context, 
    G.dateTimesetAlarm.getDayOfYear(), intent1, 0); 
mAlarmManager.cancel(pendingIntent); 
pendingIntent.cancel(); 
Смежные вопросы