如何为Xamarin.Android AlarmManager设置准确的时间

问题描述 投票:1回答:1

我在Xamarin.Android应用程序中的特定时间设置本地通知。一切正常,但设定时间似乎很少,设定时间来自用户输入(精确度很高)。在将来(几天后)进一步设置通知时,通知会在下一分钟触发,而不是应该具有的通知。

下面是我目前计算时间的代码。 calendarEvent.StartTime是DateTime属性。

TimeSpan span = calendarEvent.StartTime - DateTime.Now;
manager.Set(AlarmType.ElapsedRealtime,(long)(SystemClock.ElapsedRealtime() + span.TotalMilliseconds),pendingIntent);     

我想知道如何准确计算时间,以便通知在他们应该的开始时点火。在当前的代码中,它们会在分钟中或之后触发。

datetime xamarin.android alarmmanager timespan
1个回答
0
投票

如果您确实需要精度,请尝试使用警报管理器类的SetExact()方法。

TimeSpan span = calendarEvent.StartTime - DateTime.Now;
manager.SetExact(AlarmType.ElapsedRealtime,(long)(SystemClock.ElapsedRealtime() + span.TotalMilliseconds),pendingIntent);

我不知道它是否相关,但是如果您使用日历事件可能应该使用RTC,因为AlarmType.RTC基于时钟,而AlarmType.ElapsedRealTime基于自设备以来经过的时间打开。

© www.soinside.com 2019 - 2024. All rights reserved.