在Xamarin.Forms Android应用中,先按设备的“后退”按钮,然后按应用图标,再调用MainActivity.OnCreate吗?

时间:2018-09-20 20:24:43

标签: android xamarin xamarin.forms

在Xamarin.Forms Android应用程序中,按下设备的“后退”按钮退出应用程序,然后在应用程序运行列表中按应用程序图标或快照以再次启动,然后再次调用MainActivity.OnCreate。因此,尽管该应用似乎仍保留在应用运行列表中,但所有状态都将丢失。如果我按设备中间的按钮退出,然后再按应用程序图标再次启动,我会看到应用程序保留所有状态,因为未调用MainActivity.OnCreate,其中包含一些初始化代码。

问题1:为什么通过“后退”按钮和“中间”按钮退出应用程序会有区别?两种方法都可以使应用程序仍在运行。

问题2:让两种方式提供相同的应用行为是否值得/合法/常规?在再次激活时保持所有状态?

问题3:如果是,如何正确执行操作?

1 个答案:

答案 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/