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()
。因此,无论何时此活动在默认情况下崩溃或启动,它都应该加载myactMyFirstForm
====================================================================
**这个代码适合我**
它检查是否UserID=0
或是否有一些值,以及用户是否单击了退出菜单。我们需要在不加载所需屏幕的情况下完全退出应用程序
这可能不是最好的解决方案,也不是推荐的解决方案,但这对我很有用
如果有任何合法的方法来解决这个问题,请让我不这样做,我可以修改我的代码相应
你也可以在xamarin论坛上找到同样的解决方案