Xamarin表单-线程效率

Xamarin表单-线程效率,xamarin,error-handling,crash,xamarin.android,xamarin.forms,Xamarin,Error Handling,Crash,Xamarin.android,Xamarin.forms,我正在开发一个Xamarin(PCL)跨平台应用程序,目前正在我的Android物理设备和模拟器上进行测试。该应用程序在高端手机上运行完美,但在三星S4等低端手机上“意外崩溃”。它只有在我执行多个活动和任务后才会崩溃 我假设这与这些手机的任务线程容量有关。如果我在这方面是正确的,我该如何使我的应用程序在所有手机上都能顺利运行且无错误 编辑-错误显示“应用程序意外关闭”。此错误不会出现在特定行上,因为它与代码无关。当执行许多活动时,它仅在某些“旧”手机上中断。活动的示例包括:向数据库添加数据、更新

我正在开发一个Xamarin(PCL)跨平台应用程序,目前正在我的Android物理设备和模拟器上进行测试。该应用程序在高端手机上运行完美,但在三星S4等低端手机上“意外崩溃”。它只有在我执行多个活动和任务后才会崩溃

我假设这与这些手机的任务线程容量有关。如果我在这方面是正确的,我该如何使我的应用程序在所有手机上都能顺利运行且无错误

编辑-错误显示“应用程序意外关闭”。此错误不会出现在特定行上,因为它与代码无关。当执行许多活动时,它仅在某些“旧”手机上中断。活动的示例包括:向数据库添加数据、更新/删除数据、从一个活动移动到另一个活动、根据用户输入的数据显示日历和饼图

编辑2-处理图像的部分代码:

Xaml:

<ScrollView HorizontalOptions="Fill" Orientation="Horizontal">
                                <StackLayout Orientation="Vertical" BackgroundColor="GhostWhite" >
                                    <StackLayout Orientation="Horizontal" BackgroundColor="GhostWhite" >
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="dairy" Image="{Binding Dairy_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="alcohol" Image="{Binding Alcohol_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="eggs" Image="{Binding Egg_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="fastfood" Image="{Binding Fastfood_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="fish" Image="{Binding Fish_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="fruit" Image="{Binding Fruit_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="grain" Image="{Binding Grain_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="legume" Image="{Binding Legume_Image}"/>
                                    </StackLayout>
                                    <StackLayout Orientation="Horizontal" BackgroundColor="GhostWhite" >
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="meat" Image="{Binding Meat_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="munchies" Image="{Binding Munchies_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="nuts" Image="{Binding Nut_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="potato" Image="{Binding Potato_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="soda" Image="{Binding Soda_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="sweets" Image="{Binding Sweet_Image}"/>
                                        <Button HeightRequest="50" BackgroundColor="GhostWhite"  WidthRequest="50" Command="{Binding Button_Clicked_Food}" CommandParameter="vegetables" Image="{Binding Vegetable_Image}"/>
                                    </StackLayout>
                                </StackLayout>

.CS:

public UserMealINC\u虚拟机(用户配置文件更新,日期时间日)
{
尝试
{
天=天;
用户_pro=up;
Bool_Food_Type=false;
食物名称=”;
类型=”;
食物重量=“0”;
所选食物=新列表();
//所有餐点首先用非彩色图像初始化
Dairy_Image=“drawable/Dairy.png”;
酒精_Image=“drawable/酒精.png”;
Egg_Image=“drawable/eggs.png”;
Fastfood_Image=“drawable/Fastfood.png”;
Fish_Image=“drawable/Fish.png”;
水果图片=“drawable/Fruit.png”;
Grain_Image=“drawable/Grain.png”;
Legume_Image=“drawable/Legume.png”;
Meat_Image=“drawable/Meat.png”;
麦奇_Image=“drawable/Munchies.png”;
Nut_Image=“drawable/nuts.png”;
Potato_Image=“drawable/Potato.png”;
Soda_Image=“drawable/Soda.png”;
Sweet_Image=“drawable/sweets.png”;
蔬菜图片=“drawable/vegets.png”;
this.Button_Clicked_Food=新命令((键)=>
{
//将所选项目从“颜色”更改为“非颜色”,反之亦然
如果(所选食物成分(关键))
{
如果(键==“乳制品”)
{
Dairy_Image=“drawable/Dairy.png”;
}
否则,如果(键==“酒精”)
{
酒精_Image=“drawable/酒精.png”;
}
否则如果(键==“鸡蛋”)
{
Egg_Image=“drawable/eggs.png”;
}
否则,如果(键==“快餐”)
{
Fastfood_Image=“drawable/Fastfood.png”;
}
否则如果(键==“鱼”)
{
Fish_Image=“drawable/Fish.png”;
}
否则,如果(键==“水果”)
{
水果图片=“drawable/Fruit.png”;
}
否则,如果(键==“颗粒”)
{
Grain_Image=“drawable/Grain.png”;
}
否则如果(键==“豆类”)
{
Legume_Image=“drawable/Legume.png”;
}
否则,如果(键==“肉”)
{
Meat_Image=“drawable/Meat.png”;
}
否则,如果(键==“零食”)
{
麦奇_Image=“drawable/Munchies.png”;
}
否则,如果(键=“螺母”)
{
Nut_Image=“drawable/nuts.png”;
}
否则如果(键==“土豆”)
{
Potato_Image=“drawable/Potato.png”;
}
否则,如果(键==“苏打水”)
{
Soda_Image=“drawable/Soda.png”;
}
否则,如果(键==“糖果”)
{
Sweet_Image=“drawable/sweets.png”;
}
否则,如果(键==“蔬菜”)
{
蔬菜图片=“drawable/vegets.png”;
}
其他的
{
//钥匙不准入内???
}
 public UserMealINC_vm(User_Profiles up, DateTime day)
        {
            try
            {
                Day = day;
                User_pro = up;
                Bool_Food_Type = false;
                Food_Name = "";
                Type = "";
                Food_Weight = "0";
                Selected_Food = new List<string>();

                //All meal item are first initialized with the non-coloured images
                Dairy_Image = "drawable/dairy.png";
                Alcohol_Image = "drawable/alcohol.png";
                Egg_Image = "drawable/eggs.png";
                Fastfood_Image = "drawable/fastfood.png";
                Fish_Image = "drawable/fish.png";
                Fruit_Image = "drawable/fruit.png";
                Grain_Image = "drawable/grain.png";
                Legume_Image = "drawable/legume.png";
                Meat_Image = "drawable/meat.png";
                Munchies_Image = "drawable/munchies.png";
                Nut_Image = "drawable/nuts.png";
                Potato_Image = "drawable/potato.png";
                Soda_Image = "drawable/soda.png";
                Sweet_Image = "drawable/sweets.png";
                Vegetable_Image = "drawable/vegetables.png";

                this.Button_Clicked_Food = new Command<string>((key) =>
                {
                    //Change the item selected from color to non-color, or vice-versa

                    if (Selected_Food.Contains(key))
                    {
                        if (key == "dairy")
                        {
                            Dairy_Image = "drawable/dairy.png";
                        }
                        else if (key == "alcohol")
                        {
                            Alcohol_Image = "drawable/alcohol.png";
                        }
                        else if (key == "eggs")
                        {
                            Egg_Image = "drawable/eggs.png";
                        }
                        else if (key == "fastfood")
                        {
                            Fastfood_Image = "drawable/fastfood.png";
                        }
                        else if (key == "fish")
                        {
                            Fish_Image = "drawable/fish.png";
                        }
                        else if (key == "fruit")
                        {
                            Fruit_Image = "drawable/fruit.png";
                        }
                        else if (key == "grain")
                        {
                            Grain_Image = "drawable/grain.png";
                        }
                        else if (key == "legume")
                        {
                            Legume_Image = "drawable/legume.png";
                        }
                        else if (key == "meat")
                        {
                            Meat_Image = "drawable/meat.png";
                        }
                        else if (key == "munchies")
                        {
                            Munchies_Image = "drawable/munchies.png";
                        }
                        else if (key == "nuts")
                        {
                            Nut_Image = "drawable/nuts.png";
                        }
                        else if (key == "potato")
                        {
                            Potato_Image = "drawable/potato.png";
                        }
                        else if (key == "soda")
                        {
                            Soda_Image = "drawable/soda.png";
                        }
                        else if (key == "sweets")
                        {
                            Sweet_Image = "drawable/sweets.png";
                        }
                        else if (key == "vegetables")
                        {
                            Vegetable_Image = "drawable/vegetables.png";
                        }
                        else
                        {
                            //Key out of bounds???
                        }

                        Selected_Food.Remove(key);
                    }
                    else
                    {
                        if (key == "dairy")
                        {
                            Dairy_Image = "drawable/dairy_color.png";
                        }
                        else if (key == "alcohol")
                        {
                            Alcohol_Image = "drawable/alcohol_color.png";
                        }
                        else if (key == "eggs")
                        {
                            Egg_Image = "drawable/eggs_color.png";
                        }
                        else if (key == "fastfood")
                        {
                            Fastfood_Image = "drawable/fastfood_color.png";
                        }
                        else if (key == "fish")
                        {
                            Fish_Image = "drawable/fish_color.png";
                        }
                        else if (key == "fruit")
                        {
                            Fruit_Image = "drawable/fruit_color.png";
                        }
                        else if (key == "grain")
                        {
                            Grain_Image = "drawable/grain_color.png";
                        }
                        else if (key == "legume")
                        {
                            Legume_Image = "drawable/legume_color.png";
                        }
                        else if (key == "meat")
                        {
                            Meat_Image = "drawable/meat_color.png";
                        }
                        else if (key == "munchies")
                        {
                            Munchies_Image = "drawable/munchies_color.png";
                        }
                        else if (key == "nuts")
                        {
                            Nut_Image = "drawable/nuts_color.png";
                        }
                        else if (key == "potato")
                        {
                            Potato_Image = "drawable/potato_color.png";
                        }
                        else if (key == "soda")
                        {
                            Soda_Image = "drawable/soda_color.png";
                        }
                        else if (key == "sweets")
                        {
                            Sweet_Image = "drawable/sweets_color.png";
                        }
                        else if (key == "vegetables")
                        {
                            Vegetable_Image = "drawable/vegetables_color.png";
                        }
                        else
                        {
                            //Key out of bounds???
                        }
                        Selected_Food.Add(key);
                    }
                });                
            }
            catch (Exception ex)
            {
                App.Current.MainPage.DisplayAlert("UserMealINC_vm 1!", ex.Message, "OK");
            }
        }