@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 секунд. Это из-за доступности ресурсов?
В списке работающих приложений моего нет, почему?
Уведомления сбрасываются, если устройство перезагружается. Как этого избежать?
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Postuf Москва
от 150 000 до 350 000 руб.
CV Recruitment Москва
До 180 000 руб.
Моризо Digital Москва
от 120 000 до 250 000 руб.
10 дек. 2019, в 15:37
200 руб./за проект
10 дек. 2019, в 15:30
25000 руб./за проект
10 дек. 2019, в 15:20
5000 руб./за проект