都是毛伊岛移动应用程序开发的新手.我正在创建一款扫描附近WiFi网络的应用程序,如果它找到了特定的网络,它必须执行一些操作.我希望这个应用程序即使在后台也能工作,继续更新找到的网络列表并运行我创建的方法.
如何做到这一点呢?
都是毛伊岛移动应用程序开发的新手.我正在创建一款扫描附近WiFi网络的应用程序,如果它找到了特定的网络,它必须执行一些操作.我希望这个应用程序即使在后台也能工作,继续更新找到的网络列表并运行我创建的方法.
如何做到这一点呢?
如果您的目的不是在扫描网络时阻止用户界面,您只需使用async/await
即可.请考虑下面的简化代码示例:
class WifiNetworkViewModel : ViewModelBase
{
public WifiNetworkViewModel()
{
Networks = new ObservableCollection<WifiNetwork>();
}
public ObservableCollection<WifiNetwork> Networks { get; }
public async Task ScanWifiNetworks()
{
while (true)
{
// Scanning logic here (use await)
// When found one, add it to the Networks collection
Networks.Add(new WifiNetwork { Name = "Wifi Network 1" });
// Break the while loop with timeout etc.
}
}
}
class WifiNetwork
{
public string Name { get; set; }
}
要使用此视图模型,我假设您有一个列表控件,如ListView
,并将其绑定到Networks
属性,如
<ListView ItemsSource="{Binding Networks}"/>
当找到的网络添加到Networks
属性时,ListView
将自动填充.例如,要开始扫描,请从Button
调用ScanWifiNetworks()
方法.