如何在 Zebble for Xamarin 的后台进程中从服务器获取日期和时间?

How Can I get date and time from the server on background process in Zebble for Xamarin?

我想在后台进程中获取一些数据,例如日期和时间,并在不阻塞 UI 进程的情况下更新 UI,我尝试使用以下代码做到这一点:

var dateTime = await Api.Get<DateTime>("api/getNow");
MyTextView.Text = dateTime;

但是此代码阻止了 UI,我需要每 30 分钟获取一次此数据,因此我在下面添加了从 Xamarin 中找到的代码:

TimerCallback timerDelegate = new TimerCallback(CheckStatus);

Timer timer = new Timer(timerDelegate, s, 30000, 30000);

但是在 Zebble 中,Timer 没有定义 4 个参数。

要运行上的一些代码UI你可以使用这个代码:

Device.UIThread.Invoke(()=>{    //UI code   });

而对于 运行 在后台进程上运行一些代码,当 UI 在另一个进程上工作时你需要做一些事情,你可以像下面这样使用线程池:

Device.ThreadPool.Invoke(()=>{ //Background Code });

在那之后,当你想在一段时间内 运行 一些代码时,你可以使用 Thread 命名空间中的定时器,如下所示:

var s = new TimerExampleState();
var timerDelegate = new TimerCallback(() =>
{
     //Your code
});
var timer = new Timer(timerDelegate, s, 1000, 1000);

有关详细信息,您可以查看下面的 link: http://zebble.net/docs/understanding-zebble-threading

免责声明:我是 Zebble 项目贡献者并从事技术支持。