Xamarin.Forms方法在某些设备上执行两次

时间:2016-09-09 09:01:21

标签: ios xamarin.forms

我有一个适用于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 });
    });

1 个答案:

答案 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;
}