我有一个适用于Android和iOS的Xamarin.Forms应用程序,它读取qr代码并将其保存在本地sqlite数据库中。
该应用程序安装在3台设备上(带有iOS 9.3.5的iPhone 4s,带有iOS 9.4的iPhone 5s和带有Android 6.0的Samsung Galaxy S7 Edge)。奇怪的是,在iPhone 4s上将条形码方法保存在数据库中被调用两次!
Device.BeginInvokeOnMainThread(() =>{
Navigation.PopAsync();
DisplayAlert("Scanned Barcode", result.Text, "OK");
dbHelper.SaveItem(new DbItem() { Name = result.Text });
});
答案 0 :(得分:1)
您可以使用标志锁定事件,例如:
Device.BeginInvokeOnMainThread(() =>{
if(flag){
return;
}
flag = true;
Navigation.PopAsync();
DisplayAlert("Scanned Barcode", result.Text, "OK");
dbHelper.SaveItem(new DbItem() { Name = result.Text });
});
override OnAppearing(){
flag = false;
}