AlarmManager отлично работает, когда я не объявил cancel
, но не срабатывают, когда я объявляю cancel
.. Вот код:Как отменить PendingIntent в определенное время?
Calendar c= Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 37);
c.set(Calendar.SECOND, 0);
Toast.makeText(this, c.getTime().toString(), Toast.LENGTH_LONG).show();
intent = new Intent(TestAlarm.this, TestAlarmService.class);
pi = PendingIntent.getService(TestAlarm.this, 1, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);
и cancel
код:
c.add(Calendar.HOUR_OF_DAY, 0);
c.add(Calendar.MINUTE, 38);
c.add(Calendar.SECOND, 0);
PendingIntent pi1=PendingIntent.getService(TestAlarm.this, 1, intent, 0);
AlarmManager am1 = (AlarmManager) getSystemService(ALARM_SERVICE);
//stopService(intent);
am1.cancel(pi);
Теперь здесь я хочу чтобы начать мой AlarmManager
, чтобы уйти в 12:37 и cancel
через одну или две минуты ... Но всякий раз, когда я использую код cancel
, AlarmManager
никогда не срабатывает ... Спасибо заранее! :)
Спасибо @WATTO, но Служба, вызванная с ней, не остановлена! И, пожалуйста, скажите мне, как я могу узнать, отменен ли PendingIntent? –
Вы используете 'c.add()' вместо 'c.set()' в вашем коде отмены. Это означает, что он добавляет 38 минут к текущему времени, вместо того, чтобы установить текущее время на «12:38». См. Мой отредактированный ответ. – wattostudios
Спасибо @WATTO за то, что исправил меня ... :) Но теперь, если я использую 'setRepeating', он запускается только при нажатии кнопки ... WEEL моя проблема решена. Благодаря! –