/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="intent"></param> public override void OnReceive(Context context, Intent intent) { var extra = intent.GetStringExtra(LocalNotificationKey); var notification = NativeNotification.Deserialize(extra); var notificationManager = Application.Context.GetSystemService(Context.NotificationService) as NotificationManager; notificationManager.Notify(notification.Id, CreateAndroidNotification(notification)); }
internal static string Serialize(NativeNotification notification) { var xmlSerializer = new XmlSerializer(notification.GetType()); using (var stringWriter = new StringWriter()) { xmlSerializer.Serialize(stringWriter, notification); return(stringWriter.ToString()); } }
/// <summary> /// Notifies the specified notification. /// </summary> /// <param name="notification">The notification.</param> public object Notify(LocalNotification notification) { var id = staticId++; var intent = createIntent(id); var serializedNotification = NativeNotification.Serialize(new NativeNotification() { Id = id, NotifyTime = notification.NotifyTime, Text = notification.Text, Title = notification.Title, Parameter = notification.Parameter }); intent.PutExtra(ScheduledAlarmHandler.LocalNotificationKey, serializedNotification); var pendingIntent = PendingIntent.GetBroadcast(Application.Context, 0, intent, PendingIntentFlags.CancelCurrent); var triggerTime = notifyTimeInMilliseconds(notification.NotifyTime); var alarmManager = getAlarmManager(); alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + triggerTime, pendingIntent); return(id); }