【发布时间】:2013-05-07 02:10:42
【问题描述】:
一般场景:
在使用 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.
================================================ ================================
问题:
在运行应用程序时,流程应该根据给定的活动进行,当我在登录页面上输入正确的凭据时,它会保存我的 (int)UserID。并使用此 UserID 获取用户的详细信息并在第三个活动中显示它们。
但有时,如果应用程序在第三个活动中崩溃,并且当我重新启动应用程序时,它不会从初始屏幕启动,而是从它崩溃的活动(第三个活动)或以前的活动(第三个活动的调用者,并不总是 LoginForm)从那里调用活动。
现在的问题是,由于我从未收到 LoginPage,因此从未输入登录详细信息,因此 (int)UserID 设置为 0/NULL,因此 没有从数据库中获取数据。将第三个活动(个人资料活动)的所有字段显示为空白
我的处理方案:
所以要处理这个我覆盖 OnResume() 并检查 UserID,即 如果 userID 为 0 然后加载 登录屏幕。这工作得很好。
但是现在当我通过终止 processID 手动退出应用程序时,配置文件屏幕仍然存在,它调用 OnResume();再次。由于我已经注销它再次加载登录屏幕,....
这会循环进行。现在我无法通过杀死processID来退出应用程序,请帮我找到解决这个问题的方法
对不起,问了这么长的问题,但我没有找到比这更好的解释,希望我的朋友们不要介意。
【问题讨论】:
-
你也可以在xamarin论坛forums.xamarin.com/discussion/4068/…找到相同的解决方案
标签: c# android xamarin.android xamarin