Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Xamarin的Android应用程序崩溃管理_C#_Android_Xamarin.android_Xamarin - Fatal编程技术网

C# 使用Xamarin的Android应用程序崩溃管理

C# 使用Xamarin的Android应用程序崩溃管理,c#,android,xamarin.android,xamarin,C#,Android,Xamarin.android,Xamarin,一般情况: 1 st Activity = Splash Screen; 2 nd Activity = Login Screen; [sets a global appication variable User ID] 3 rd Activity = User Profile [fetch data from database using User ID]; 4 th Activity = preference page, settings which saves username n

一般情况:

1 st Activity = Splash Screen;

2 nd Activity = Login Screen; [sets a global appication variable User ID]

3 rd Activity = User Profile [fetch data from database using User ID];

4 th Activity = preference page, settings which saves username n password from login form.
在使用xamarin开发android应用程序时,我们倾向于多次使应用程序崩溃,这种行为是完全可以接受和正常的

但有时,当我从第一个活动导航到第二个活动时。在第二个活动中,如果应用程序崩溃,那么在下一次运行时,应用程序将从第二个活动开始,而它应该从第一个活动开始。请注意第一个活动:mainLauncher属性设置为TRUE

应用程序:

1 st Activity = Splash Screen;

2 nd Activity = Login Screen; [sets a global appication variable User ID]

3 rd Activity = User Profile [fetch data from database using User ID];

4 th Activity = preference page, settings which saves username n password from login form.
==============================================================================

问题:

1 st Activity = Splash Screen;

2 nd Activity = Login Screen; [sets a global appication variable User ID]

3 rd Activity = User Profile [fetch data from database using User ID];

4 th Activity = preference page, settings which saves username n password from login form.
运行应用程序时,流程应根据给定的活动进行,当我在登录页面上输入正确的凭据时,它将保存我的(int)UserID。我使用这个用户ID获取用户的详细信息,并在第三个活动中显示它们

但有时,如果应用程序在第三个活动中崩溃,并且当我重新启动应用程序时,它不是从启动屏幕开始,而是从它崩溃的活动(第三个活动)开始,或者从调用活动的前一个活动(第三个活动的调用者,不总是LoginForm)开始

现在的问题是,由于我从未收到登录页面,因此从未输入登录详细信息,因此(int)UserID被设置为0/NULL,因此没有从数据库中提取数据。将第三个活动(配置文件活动)上的所有字段显示为空白

我的处理方案:

1 st Activity = Splash Screen;

2 nd Activity = Login Screen; [sets a global appication variable User ID]

3 rd Activity = User Profile [fetch data from database using User ID];

4 th Activity = preference page, settings which saves username n password from login form.
因此,为了处理这个问题,我覆盖OnResume()并检查用户ID,即如果用户ID为0,则加载登录屏幕。这个很好用

但是现在,当我通过终止processID手动退出应用程序时,配置文件屏幕仍然保留,它调用OnResume();再一次。当我再次注销时,请加载登录屏幕

这是一个循环。现在我无法通过终止
processID
退出应用程序,请帮助我找到此问题的解决方案

很抱歉提出这么长的问题,但我没有找到比这更好的解释方法,希望我的朋友们不会介意。

(由OP在问题编辑中回答。转换为社区wiki答案。请参阅)

OP写道:

我设法解决了这个问题,并将用一个简单的例子进行解释

类clsMainProjectLibrary:

1 st Activity = Splash Screen;

2 nd Activity = Login Screen; [sets a global appication variable User ID]

3 rd Activity = User Profile [fetch data from database using User ID];

4 th Activity = preference page, settings which saves username n password from login form.
这是主库,我们定义了一个可以在任何活动中调用的函数,以便重用代码

**actMyCustomActivity.cs:**

这是我的自定义活动,在此活动中,我们将调用我们的
应用程序rashHandler()
。因此,无论何时此活动在默认情况下崩溃或启动,它都应该加载my
actMyFirstForm

====================================================================

**这个代码适合我**

它检查是否
UserID=0
或是否有一些值,以及用户是否单击了退出菜单。我们需要在不加载所需屏幕的情况下完全退出应用程序

这可能不是最好的解决方案,也不是推荐的解决方案,但这对我很有用

如果有任何合法的方法来解决这个问题,请让我不这样做,我可以修改我的代码相应


你也可以在xamarin论坛上找到同样的解决方案