我正在使用Xamarin跨平台开发应用程序,同时支持iOS和Android。我的项目有三个部分,“Core”、“iOS”和“Android”。
在共享的“Core”项目中,我想要显示一个加载动画,同时获取设备当前位置。我可以获得locationWatcher并启动它,然后直接调用LocationWatcher.CurrentPosition。但是,由于它刚刚开始监视位置更新,所以还没有时间获取任何位置。
为了解决这个问题,我的解决方法是在启动后等待2秒钟再获取位置。但是,我不想异步等待,我希望在等待时锁定UI。这是因为在未知当前位置之前,用户不应该能够进行任何操作。
我目前通过循环来实现这一点:
这似乎是在使用一种丑陋的“hack”方法,而在Java中这个操作只需要简单地使用“Thread.sleep(2000)”即可。
有没有更好的方法来实现这个功能?
在共享的“Core”项目中,我想要显示一个加载动画,同时获取设备当前位置。我可以获得locationWatcher并启动它,然后直接调用LocationWatcher.CurrentPosition。但是,由于它刚刚开始监视位置更新,所以还没有时间获取任何位置。
为了解决这个问题,我的解决方法是在启动后等待2秒钟再获取位置。但是,我不想异步等待,我希望在等待时锁定UI。这是因为在未知当前位置之前,用户不应该能够进行任何操作。
我目前通过循环来实现这一点:
DateTime startTime = DateTime.Now();
while ( (DateTime.Now() - startTime).TotalMilliseconds() < 2000) {
//Locking the UI here, but it's what I want so it's ok.
}
这似乎是在使用一种丑陋的“hack”方法,而在Java中这个操作只需要简单地使用“Thread.sleep(2000)”即可。
有没有更好的方法来实现这个功能?