@alekseyHunter
Студент. Охотник за знаниями.

Как отправлять локальные уведомления в фоновом режиме (Xamarin)?

Добрый день.

Требуется отправлять локальные уведомления в фоновом режиме.
Написал класс для отображения локальных уведомления.
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            var alarmIntent = new Intent(this, typeof(BackgroundReceiver));

            var pending = PendingIntent.GetBroadcast(this, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);

            var alarmManager = GetSystemService(AlarmService).JavaCast<AlarmManager>();
            alarmManager.SetRepeating(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 1 * 1000, 15 * 1000, pending);
    }
}

     [BroadcastReceiver]
    public class BackgroundReceiver : BroadcastReceiver
    {
        static readonly int NOTIFICATION_ID = 1000;
        static readonly string CHANNEL_ID = "location_notification";
        internal static readonly string COUNT_KEY = "count";

        public override void OnReceive(Context context, Intent intent)
        {
            PowerManager pm = (PowerManager)context.GetSystemService(Context.PowerService);
            PowerManager.WakeLock wakeLock = pm.NewWakeLock(WakeLockFlags.Partial, "BackgroundReceiver");
            wakeLock.Acquire();

            var builder = new NotificationCompat.Builder(context, CHANNEL_ID)
                          .SetAutoCancel(true)
                          .SetContentTitle("Прием заявлений")
                          .SetContentText($"У вас остался 1 день до подачи заявления."); 

            Notification notification = builder.Build();

            notification.Defaults |= NotificationDefaults.Vibrate;

            var notificationManager = NotificationManagerCompat.From(context);
            notificationManager.Notify(NOTIFICATION_ID, notification);

            wakeLock.Release();
        }
    }


В фоновом режиме создает уведомление раз в минуту, а не раз в 15 секунд. Это из-за доступности ресурсов?
В списке работающих приложений моего нет, почему?
Уведомления сбрасываются, если устройство перезагружается. Как этого избежать?
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Моризо Digital Москва
от 120 000 до 250 000 руб.
Postuf Москва
от 150 000 до 350 000 руб.
IMMO Королев
от 100 000 до 240 000 руб.
07 дек. 2019, в 17:26
400 руб./в час
07 дек. 2019, в 17:09
1000 руб./за проект
07 дек. 2019, в 17:03
7000 руб./за проект