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

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述如何为Xamarin.Android AlarmManager设置准确的时间相关的知识,希望能为你提供帮助。
我在Xamarin.android应用程序中的特定时间设置本地通知。一切正常,但设定时间似乎很少,设定时间来自用户输入(精确度很高)。在将来(几天后)进一步设置通知时,通知会在下一分钟触发,而不是应该具有的通知。
下面是我目前计算时间的代码。 calendarEvent.StartTime是DateTime属性。

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

【如何为Xamarin.Android AlarmManager设置准确的时间】我想知道如何准确计算时间,以便通知在他们应该的开始时点火。在当前的代码中,它们会在分钟中或之后触发。
答案如果您确实需要精度,请尝试使用警报管理器类的SetExact()方法。
TimeSpan span = calendarEvent.StartTime - DateTime.Now; manager.SetExact(AlarmType.ElapsedRealtime,(long)(SystemClock.ElapsedRealtime() + span.TotalMilliseconds),pendingIntent);

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

    推荐阅读