Hi i’m creating an alarm via push, so when i receive a notification i set the alarm. All works fine but the alarm is displaying at the moment i make the push, not the moment i have said.
Here’s my code:
public void set_alarm(int year, int month, int day, int hour, int minute,
String title) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, 5);
cal.set(Calendar.YEAR, 2012);
cal.set(Calendar.DAY_OF_MONTH, 31);
cal.set(Calendar.HOUR_OF_DAY, 9);
cal.set(Calendar.MINUTE, 46);
Intent intent = new Intent(c, AlarmActivity.class);
intent.putExtra("title", title);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
c.getApplicationContext(), 1253, intent,
PendingIntent.FLAG_UPDATE_CURRENT | Intent.FILL_IN_DATA);
AlarmManager alarmManager = (AlarmManager) c
.getSystemService(c.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
pendingIntent);
}
And here is the class that receives the notification:
public class AlarmActivity extends BroadcastReceiver {
@Override
public void onReceive(Context c, Intent i) {
Toast.makeText(c, "Alarm worked.", Toast.LENGTH_LONG).show();
int icon = R.drawable.ic_dialog_alert;
long when = System.currentTimeMillis();
Bundle bundle = i.getExtras();
String title = bundle.getString("title");
final int NOTIF_ID = 1234;
NotificationManager notofManager = (NotificationManager) c
.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(c, AnonymeActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(c, 0,
notificationIntent, 0);
Notification notification = new Notification(icon, "Faraway", when);
notification.setLatestEventInfo(c, "Faraway alarm", title,
contentIntent);
notification.flags = Notification.FLAG_INSISTENT;
notification.defaults |= Notification.DEFAULT_SOUND;
notofManager.notify(NOTIF_ID, notification);
}
}
Thanks
You’re creating a Calendar instance at the date : 05/31/2012, which is before the current date.
According to the doc :
Just set a correct date and time. Actually, you should use the parameters you pass to the set_alarm() function.
(Source : http://developer.android.com/reference/android/app/AlarmManager.html#set(int, long, android.app.PendingIntent)