如何为Xamarin.Android AlarmManager设置准确的时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为Xamarin.Android AlarmManager设置准确的时间相关的知识,希望对你有一定的参考价值。
我在Xamarin.android应用程序中的特定时间设置本地通知。一切正常,但设定时间似乎很少,设定时间来自用户输入(精确度很高)。在将来(几天后)进一步设置通知时,通知会在下一分钟触发,而不是应该具有的通知。
下面是我目前计算时间的代码。 calendarEvent.StartTime是DateTime属性。
TimeSpan span = calendarEvent.StartTime - DateTime.Now;
manager.Set(AlarmType.ElapsedRealtime,(long)(SystemClock.ElapsedRealtime() + span.TotalMilliseconds),pendingIntent);
我想知道如何准确计算时间,以便通知在他们应该的开始时点火。在当前的代码中,它们会在分钟中或之后触发。
答案
如果您确实需要精度,请尝试使用警报管理器类的SetExact()方法。
TimeSpan span = calendarEvent.StartTime - DateTime.Now;
manager.SetExact(AlarmType.ElapsedRealtime,(long)(SystemClock.ElapsedRealtime() + span.TotalMilliseconds),pendingIntent);
我不知道它是否相关,但是如果您使用日历事件可能应该使用RTC,因为AlarmType.RTC基于时钟,而AlarmType.ElapsedRealTime基于自设备以来经过的时间打开。
以上是关于如何为Xamarin.Android AlarmManager设置准确的时间的主要内容,如果未能解决你的问题,请参考以下文章
使用 tabhost 中的每个选项卡设置 axml 布局:Xamarin Android
大叔也说Xamarin~Android篇~原生登陆与WebView的网站如何共享Session