/// <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));
        }
Пример #2
0
        internal static string Serialize(NativeNotification notification)
        {
            var xmlSerializer = new XmlSerializer(notification.GetType());

            using (var stringWriter = new StringWriter())
            {
                xmlSerializer.Serialize(stringWriter, notification);
                return(stringWriter.ToString());
            }
        }
Пример #3
0
        /// <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);
        }