Publicado por: luizfbarbosa | outubro 23, 2014

Criando Alarme para a Repetição de um Serviço

Às vezes é necessário em algumas aplicações a repetição temporal de alguma função ou serviço. Bem para fazermos isto podemos criar uma alarme com repetição, bem simples assim. Mas chega de conversa… Segue abaixo uma forma de implementar a criação de um Alarm que irá disparar um Serviço a cada 30 minutos.

private static final int ALARMID = 9999; // Um número para poder identificar o seu alarme
private void instalaAlarme() {
	PendingIntent sender;
	// Inicializa o Serviço
	AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
	// Serviço	
	Intent intentMyService = new Intent(this, MyService.class);

	// Verifica se o alarme já esta setado
	boolean alarmUp = (PendingIntent.getBroadcast(this, ALARMID, intentMyService,PendingIntent.FLAG_NO_CREATE) != null);
	if (alarmUp) {
		Log.i("Teste", "Alarme já setado !!! ");
		return;
	}

	sender = PendingIntent.getBroadcast(this, ALARMID, intentMyService,	PendingIntent.FLAG_CANCEL_CURRENT);

	long firstTime = System.currentTimeMillis();
	String sRepeting = MapaService.buscaValor(ConstMap.MSG_PUSH_SERVICE_REPEAT_TIME);
	Integer repeatingTime = 30*60*1000;	// 30 minutos
	firstTime += repeatingTime;		
	alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, firstTime, repeatingTime,sender);
}

Deixe um comentário

Categorias