Android - 从主屏幕运行应用程序与从任务管理器运行

时间:2018-02-02 13:27:00

标签: android xamarin xamarin.forms

我想知道从主屏幕运行Android应用程序(应用程序图标)与从任务管理器运行它有什么区别。每当我从主屏幕运行它时,我可以在短时间内看到启动画面,但之后我转发到最新的应用程序状态。从任务管理器运行它的唯一区别是我没有看到启动画面。这种行为背后有合理的解释吗?有时从主屏幕(应用程序图标)运行应用程序时,它会永远挂在启动画面上,我无法以任何方式调试它......

2 个答案:

答案 0 :(得分:0)

这是因为当您从主屏幕启动时,应用程序会重新启动而不会重新开始。您可以在此处找到此行为的解释App restarts rather than resumes

答案 1 :(得分:0)

你需要知道Activity的生命周期,就像@FabriBertani有said一样。您可以通过生命周期方法查看Activity的生命周期:

OnCreate - > OnStart - > OnResume - > OnPause - > OnStop - > OnDestroy

这是活动的正常生命周期。

主屏幕和任务管理器有几个类别

从主屏幕运行Android应用程序

  • 如果应用最近在您的设备中运行,则表示Android Warm Start

  • 如果该应用最近未在您的设备中运行,则表示Android冷启动,因此我们通常会使用splash screen来处理它。

从任务管理器运行android应用程序

  • 你的应用程序是后台,由于缺乏资源而被系统杀死。
  • 您的应用是后台,并且没有被系统杀死。
  

这种行为背后有合理的解释吗?

是。根据您的情况,它应该是 Android冷启动并且未被杀死

  • Android冷启动会从零创建应用,因此会调用:OnCreate - > OnStart - > OnResume,在调用活动OnCreate之前,需要创建应用所需的环境,以便您看到启动画面。如果我们不设置自定义初始屏幕,您会在看到最新的应用程序状态之前看到白色或黑色屏幕。
  • 从任务管理器运行应用程序(未被杀死)确实从零创建了一个应用程序。如果您按主页按钮而非Back Button,您的应用将位于最近的应用中,它会调用:OnPause - > OnStop,当您从任务管理器运行应用时,它会调用:OnRestart - > OnStart - > OnResume,因此您无法看到启动画面。