Wykonywanie programu alarmowego - nie działa
Próbuję wykonać program alarmowy. Do tej pory napisałem działanie, w którym użytkownik może wybrać czas, w którym chce wyłączyć alarm. To działa dobrze. Teraz muszę użyć menedżera alarmów, aby powiedzieć systemowi operacyjnemu, aby w przyszłości w pewnym momencie zadzwonił do mojego kodu. Aby przetestować to w surowy sposób, dodałem następujący kod, który zostanie wykonany po naciśnięciu przycisku testu w mojej głównej działalności:
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);
Powinno to oznaczać, że jakiś kod o nazwie to_call_when_alarm_goes_off zostanie wykonany sekundę po naciśnięciu przycisku .... Teraz jest to miejsce, w którym jestem trochę zdezorientowany. Nie jestem pewien, w jaki sposób / gdzie skonfigurować „to_call_when_alarm_goes_off”. Po prostu dodałem nową klasę do mojego projektu w następujący sposób:
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!!!");
}
}
Cały kod się kompiluje, a po naciśnięciu przycisku cały kod w pierwszym fragmencie kodu zostaje wykonany bez awarii - ale sekundę później kod odbiornika nie jest wykonywany. Najwyraźniej coś źle rozumiem.