首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用RTC_WAKEUP和Xamarin

结合使用RTC_WAKEUP和Xamarin
EN

Stack Overflow用户
提问于 2013-07-08 09:48:09
回答 3查看 2.2K关注 0票数 3

我正在使用Xamarin for android,我想使用RTC_WAKEUP标志来设置闹钟。谁知道如何计算触发时间,单位是毫秒?我可以使用DateTime.ToUniversalTime,但是alarmmanager set方法需要很长的时间(毫秒)。

对于运行时间,我可以使用SystemClock.ElapsedRealtime()

但是RTC_WAKEUP的文档说要使用System.currentTimeMillis()。我在c#中找不到对应的东西。有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2015-01-21 00:09:54

在Xamarin Android中,你可以使用Java.Lang.JavaSystem.CurrentTimeMillis();

示例18:30设置唤醒告警:

代码语言:javascript
复制
Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
calendar.Set(CalendarField.HourOfDay, 18);
calendar.Set(CalendarField.Minute, 30);
alarmManager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingAlarmIntent);
票数 2
EN

Stack Overflow用户

发布于 2013-08-31 18:27:27

我找不到一个内置的方法,但是从1970年开始的毫秒数很容易计算。以下方法对我有效,并在正确的时间唤醒机器:

代码语言:javascript
复制
DateTime dtBasis = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); // Android times are quoted as milliseconds since start of 1970
alarm_manager.Set(AlarmType.RtcWakeup, (long)wake_up_at.ToUniversalTime().Subtract(dtBasis).TotalMilliseconds, my_intent);
票数 1
EN

Stack Overflow用户

发布于 2017-06-23 23:45:13

使用DateTimeOffset类的ToUnixTimeMilliseconds()扩展。

代码语言:javascript
复制
long trigger = new DateTimeOffset(triggerDate).ToUnixTimeMilliseconds();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17518156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档