使用DateTime。现在我可以获取当前时间。通过以秒或毫秒为间隔不断检查DateTime.Now,可以使用计时器获取更新时间。因此,我可以制作标签并模拟实时时钟。我知道了
但是,有没有一种方法可以在分钟或小时改变时捕获事件,而不必使用计时器并每隔x秒获取当前时间?那么,当分钟更改时,DateTime或其他属性引发了一个事件吗?
还是使用计时器并每秒检查一次,这是使用DateTime.Now找出分钟变化的唯一方法吗?
答案 0 :(得分:0)
您需要使用平台相关的代码(即通过依赖项服务来设置回调事件会很好地工作)。
在Android上,您可以为BroadcastReceiver
(如果需要,还可以Intent.ActionTimeChanged
)注册Intent.ActionTimezoneChanged
:
[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionTimeChanged })]
public class TimeChanged : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
Console.WriteLine("Time change, do something with that knowledge");
}
}
在iOS上,您可以注册NSSystemClockDidChange
通知:
NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSSystemClockDidChangeNotification"), (obj) =>
{
Console.WriteLine("Time change, do something with that knowledge");
});