Osobna klasa dziedzicząca po BroadcastReceiver:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* Receiver that is periodically fired by AlarmManager. It should send a request
* to {@link UpdateService} to get the latest data.
*
*/
public class OnAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent in = new Intent(context, UpdateService.class);
context.startService(in);
}
}
i w AndroidManifest.xml dodatkowy wpis:
<receiver
android:name=".OnAlarmReceiver">
</receiver>
AlarmManager powinien być ustawiony w taki sposób:
public static void setAlarmManager(Context context, int period) {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, OnAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
if (period > 0) {
// Cancel existing alarm
am.cancel(pi);
// Set alarm with new update period value
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()
+ period, period, pi);
} else {
am.cancel(pi);
}
}