如何在 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 项目贡献者并从事技术支持。
我想在后台进程中获取一些数据,例如日期和时间,并在不阻塞 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 项目贡献者并从事技术支持。