生命周期方法onPause和onStop

时间:2018-06-25 15:41:00

标签: android android-activity

我是android新手。我已经做了一个星期。不幸的是,我无法处理生命周期方法onPause()onStop()之间的差异。实际上,我阅读了有关这些方法的一些资源,但无法估计发生以下情况时将调用哪种方法。

  1. 在屏幕上显示活动X时,按下智能手机的主页按钮

  2. 在屏幕上显示活动X时,智能手机进入睡眠模式

  3. 某些智能手机可以在屏幕上显示超过应用程序窗口的内容。当屏幕上仅显示活动X时,我将活动X的窗口缩小并打开第二个应用程序。手机屏幕上将显示两个应用程序的窗口。

对于问这个问题我真的很抱歉,但是我无法克服。

有没有人可以说这两种方法中的哪一种是针对这些情况执行的,并解释这两种方法之间的区别?

2 个答案:

答案 0 :(得分:4)

就像许多入门者一样,您可能会犯过“跳出随机教程”的错误。 Android Developers是您应该开始的地方。它具有guidescodelabsmany other resources

话虽这么说,您关于生命周期的问题在respective Guide中得到了很好的解释。

  

onPause()

     

系统调用此方法作为用户离开活动的第一个指示(尽管并不总是意味着活动已被破坏);它表示活动不再在前台(尽管如果用户处于多窗口模式,则仍然可以看到该活动)。

然后...

  

onStop()

     

当用户不再看到您的活动时,该活动已进入“已停止”状态,并且系统调用onStop()回调。例如,当新启动的活动覆盖整个屏幕时,可能会发生这种情况。当活动完成运行并即将终止时,系统还可以调用onStop()。

除这些差异外,OnStop将始终跟随OnPause,并且当活动从OnStop恢复时,它将首先进入OnRestart,并在此期间继续恢复活动后,OnPause将以OnResume开头。有关更多信息,请参见下图。

如果您仍然感到困惑,请告诉我您在评论中仍然感到困惑

Credit: Android Developers Site

答案 1 :(得分:0)

让我以一种简单的方式为您提供帮助:-

让我们假设我们将使用Whatsapp应用程序:

当您单击该应用程序时,将被调用的方法是:

onCreate()

onStart()

onReady()

现在让我们假设,您按下主屏幕按钮,应用程序最小化了,将被调用的方法是:

onResume()

onPause()

onStop()

现在让我们假设您现在要回到缩小的Whatsapp应用程序,将要调用的方法是:

onRestart()

onStart()

现在假设,您刚刚关闭了应用程序,并将其从任务管理器中删除,将被调用的方法是:

onStop()

onDestroy()

这是获取序列的图:

enter image description here