C# Xamarin IOS:相当于 C# IOS Xamarin 中的 SystemClock.ElapsedRealtime()

Posted

技术标签:

【中文标题】C# Xamarin IOS:相当于 C# IOS Xamarin 中的 SystemClock.ElapsedRealtime()【英文标题】:C# Xamarin IOS: Equivalent of SystemClock.ElapsedRealtime() in C# IOS Xamarin 【发布时间】:2018-02-22 07:01:19 【问题描述】:

我需要保留应用程序启动后的时间。即使设备进入睡眠模式,时间也需要保持计时。

android 中,SystemClock.ElapsedRealtime() 一直在休眠。

ios 中有NSProcessInfo.processInfo().systemUptime,但是当设备进入睡眠模式时这将停止滴答作响。

我看到许多使用一些内核计时器的实现,但它们都是用 Objective-C 或 Swift 编写的。我需要使用 Xamarin 跨平台库,我不知道如何将这些代码转换为 C#。

【问题讨论】:

【参考方案1】:

是否可以选择存储应用程序启动时的当前时间。而当你需要知道时间间隔时,从当前时间中减去存储的时间?

如果在睡眠期间不需要事件逻辑,这将起作用。

【讨论】:

感谢您的建议,我将使用数据库来存储值,但是如果用户更改设备的日期和时间,我可以使用一个不会受到影响的时间变量吗? 为了最大限度地减少某些国家/地区的夏令时问题,您可以使用并存储 UTC 时间(这将防止每年两次出现潜在错误)。如果您想在时间变化时处理事件,请查看***.com/questions/22756825/…。此链接的示例在 Objective-c 中,但这些类应该可以在 Xamarin 中访问。使用此示例,您可以在时间变化时做出反应(夏令时、用户、午夜等...) 如果用户手动更改设备时间,UTC时间也会更改吗?例如,如果用户更改他们的时区,这将影响时间偏移。 是的,确实如此。时间函数是与请求的格式或 UTC 之间的转换(许多设备使用以 UTC 时间运行的内部时钟,但根据设备设置向用户报告的方式不同)。

以上是关于C# Xamarin IOS:相当于 C# IOS Xamarin 中的 SystemClock.ElapsedRealtime()的主要内容,如果未能解决你的问题,请参考以下文章

使用 Xamarin.iOS (C#) 在 iOS 中进行后台处理:我应该使用哪种方法?

C# Monotouch/Xamarin.iOS - 不支持推送导航控制器

ViewDidAppear 导致我的标签消失(Xamarin.ios,C#)

C# Monotouch/Xamarin.iOS - 可滚动的 UIView

使用 xamarin.ios c# 以编程方式添加嵌套的堆栈视图

如何隐藏数字键盘,我使用的是 Xamarin iOS (C#)