2016-10-29 2 views
-1

Всякий раз, когда пользователь вводит MainActivity, я устанавливаю будильник с интервалом 43200000 милисекунд, используя код ниже, а также удаляю предыдущие аварийные сигналы.Будильник устанавливается чаще, чем время

int interval =43200000; 
Intent alarmIntent = new Intent(this, AlarmReceiver.class); 
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); 
manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
manager.cancel(pendingIntent); 
manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent); 
setContentView(R.layout.activity_main); 

Проблема в подводит уведомление или тревога срабатывает через каждые 2 минут я открыть приложение

+0

Чего вы хотите достичь? – Vyacheslav

+0

Вы не хотите уведомлять об этом через 2 минуты? – Vyacheslav

+0

после каждого 43200000 милисекунды – phpdroid

ответ

0

Я хотел бы предложить использовать это: manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, interval, pendingIntent); второго параметра:

triggerAtMillis long: время в миллисекундах, чтобы сигнал тревоги сначала отключился, используя соответствующие часы (в зависимости от типа тревоги).

manual

или лучше:

am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP:AlarmManager.RTC, nexttime, pi);

, который повторно уволен каждый раз, когда на BroadcastReceiver запускается и каждый запуск (запуск устройства) события.

43200000 12 часов;) не забудьте Futhermore, используйте длинный тип для каждых миллисекунд переменных: long interval = 43200000L; для того, чтобы предотвратить какую-то ошибку.