Fazendo um programa de alarme - não funciona

Eu estou tentando fazer um programa de alarme. Até agora, escrevi uma atividade na qual o usuário pode selecionar a hora em que deseja que o alarme seja acionado. Isso está funcionando bem. Agora eu preciso usar o gerenciador de alarmes para dizer ao sistema operacional para chamar um pouco do meu código em um determinado ponto no futuro. Apenas para testar isso de uma maneira crua, adicionei o seguinte código que é executado quando pressiono um botão de teste na minha atividade principal:

Intent intent = new Intent(getApplicationContext(), to_call_when_alarm_goes_off.class);
PendingIntent pIntent = PendingIntent.getBroadcast(getApplicationContext(),0, intent, 0);
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarms.cancel(pIntent);

alarms.setRepeating(
        AlarmManager.RTC_WAKEUP,
        System.currentTimeMillis()+1000, 
        AlarmManager.INTERVAL_DAY, 
        pIntent);

Isso deve significar que algum código chamado to_call_when_alarm_goes_off será executado um segundo depois que eu pressionar o botão .... Agora, isso é onde estou um pouco confuso. Não sei bem como / onde configurar "to_call_when_alarm_goes_off". O que eu fiz foi simplesmente adicionar uma nova classe ao meu projeto da seguinte forma:

package com.mycompany.alarmprogram;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class to_call_when_alarm_goes_off extends BroadcastReceiver
{

    @Override
    public void onReceive(Context arg0, Intent arg1) 
    {
        // TODO Auto-generated method stub
        Log.i("ALARM","TIME TO WAKE UP!!!");

    }

}

Todo o código é compilado e, quando pressiono o botão, todo o código do primeiro trecho de código é executado sem travar - mas, um segundo depois, o código do receptor de broadcast não é executado. Claramente eu estou entendendo mal alguma coisa.

questionAnswers(2)

yourAnswerToTheQuestion