Возникают ли события при изменении системных часов? - PullRequest
0 голосов
/ 15 мая 2019

Используя DateTime. Теперь я могу получить текущее время. Я могу получить обновленное время, используя таймер, постоянно проверяя DateTime.Now с интервалами, используя секунды или миллисекунды. Так что я могу сделать этикетку и смоделировать живые часы. Я понял это.

Но есть ли способ, которым я могу поймать событие, когда минуты или часы меняются на часах, без необходимости использовать таймер и получать текущее время каждые x секунд? Итак, когда меняется минута, происходит ли событие, вызванное DateTime или каким-либо другим свойством?

Или использует таймер и проверяет каждую секунду единственный способ узнать, когда меняется минута, используя DateTime.Now?

1 Ответ

0 голосов
/ 15 мая 2019

Вам потребуется использовать зависимый от платформы код (т. Е. Через службу зависимостей для настройки события обратного вызова, будет хорошо работать).

На Android вы можете зарегистрировать BroadcastReceiver для Intent.ActionTimeChangedIntent.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");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...