在Xamarin.Forms Android应用程序中,按下设备的“后退”按钮退出应用程序,然后在应用程序运行列表中按应用程序图标或快照以再次启动,然后再次调用MainActivity.OnCreate。因此,尽管该应用似乎仍保留在应用运行列表中,但所有状态都将丢失。如果我按设备中间的按钮退出,然后再按应用程序图标再次启动,我会看到应用程序保留所有状态,因为未调用MainActivity.OnCreate,其中包含一些初始化代码。
问题1:为什么通过“后退”按钮和“中间”按钮退出应用程序会有区别?两种方法都可以使应用程序仍在运行。
问题2:让两种方式提供相同的应用行为是否值得/合法/常规?在再次激活时保持所有状态?
问题3:如果是,如何正确执行操作?
答案 0 :(得分:1)
请参考:https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/activity-lifecycle/
并且:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/app-lifecycle
问题1:为什么通过“后退”按钮和“中间”按钮退出应用程序会有区别?两种方法都可以使应用程序仍在运行。
在XF中,后退按钮可以在android上用于多种用途,例如从导航堆栈中弹出页面或退出并杀死该应用程序。尽管该应用程序在按返回后仍显示为背景,但实际上已终止。中间的按钮将应用程序置于后台。
问题2:让两种方式提供相同的应用行为是否值得/合法/常规?在再次激活时保持所有状态?
此问题是主观的,这取决于您要尝试执行的操作。但一般而言,不会。遵守Android操作系统的最佳做法很重要,因为用户希望设备上的按钮的行为与操作系统中的行为类似。
https://developer.android.com/distribute/best-practices/develop/
问题3:如果是,如何正确执行操作?
请参阅上面的链接。这也是一个很好的资源:https://docs.microsoft.com/en-us/xamarin/