Я следую примеру кода для отправки уведомлений об обновлении каждые 10 секунд. Код следует, и он находится в UpdateService
для AppWidgetProvider
. Если я поставлю Thread.sleep(10*1000);
, я вижу ожидаемое поведение моего цикла обслуживания. У меня, очевидно, есть что-то принципиально неправильное, которое срабатывает немедленно. Предполагается, что будет PendingIntent
тревоги, которая будет передавать обновления моему слушателю.Почему мой диспетчер аварийной сигнализации Android запускается мгновенно?
long nextUpdate = 10*1000;
Log.d(TAG, "Requesting next update in " + nextUpdate + " msec.");
Intent updateIntent = new Intent(ACTION_UPDATE_ALL);
updateIntent.setClass(this, UpdateService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, updateIntent, 0);
// Schedule alarm, and force the device awake for this update
AlarmManager alarmManager = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
nextUpdate, pendingIntent);
Благодаря как +1 от меня для быстрого и точного ответа. К следующей проблеме. Как ни парадоксально, я попытался сделать второй комментарий слишком рано (<15 секунд), поэтому я получаю уведомление таймера от SO. :)) – mobibob
im делает это так: 'amAlarm1.setInexactRepeating (AlarmManager.RTC_WAKEUP, 120000, AlarmManager.INTERVAL_DAY, alarm1Pending); все еще ожидающее намерения стреляет мгновенно ' –
@MuhammadBabar: Вы действительно должны опубликовать новый вопрос. Но чтобы ответить на ваш вопрос в любом случае, вы передаете '120000' на triggerAtTime, что соответствует' Fri, 02 Jan 1970 09:20:00 GMT' – Falmarri