OnCreate()vs OnStart()

时间:2012-09-17 23:48:37

标签: android android-activity android-lifecycle

  

可能重复:
  Difference between onCreate() and onStart()?
  Android Activity Life Cycle - What are all these methods for?

OnCreate和OnStart有什么区别?

我的理解是OnCreate仅在第一次打开应用程序时被调用,并且永远不再被调用。这是真的?有人可以用自己的语言详细说明而不是复制和粘贴定义吗?谢谢!

5 个答案:

答案 0 :(得分:12)

只要您的设备没有终止活动,例如由于系统资源不足,那么只要您离开应用并返回,就会调用onStart。但是,如果应用程序进程被终止,那么当你返回onCreate时将再次被调用,因为你的所有资源都已被释放。

答案 1 :(得分:9)

严重的文档 - 我不是在开玩笑 - 有very, very pretty image描述Activity生命周期(它如何开始,工作和完成)如何运作。

直接链接here的图片基本上是这样说的:

    创建onCreate()时会调用
  • Activity;也就是说,它是启动或启动的。 (此外,当方向发生变化时会触发。)当进程被终止时再次调用它,然后返回。
  • 启动时会在onStart()之后调用
  • onCreate()。此外,当应用程序导航回onStop()之后(以及onRestart()之后),也会在Activity不再可见之后(在此期间发生)时调用它用户可以在屏幕上看到该活动,但它可能不在前台并与用户交互“)。

这个图表在不到1000字的情况下比我能更好地解释它。

答案 2 :(得分:2)

最好从相反的函数开始解释:onDestroy和onStop。

处理或关闭活动时会调用

onDestroy。下次打开时,会打开onCreate。

只要应用程序退出视图,就会调用onStop,并且不再可见。这通常是由旧活动顶部创建的新活动引起的。当活动再次可见时,将调用onStart。

此页面上的图表非常好地解释了活动可能处于的各种状态,以及相关的转换方法:http://developer.android.com/training/basics/activity-lifecycle/starting.html

答案 3 :(得分:1)

几乎。通常在应用程序启动时调用onCreate,但如果由于其他原因销毁/释放活动,也可能会调用onCreate。基本上,如果你想为Activity做一次设置,你应该覆盖onCreate。如果您想在每次用户导航到Activity时执行某些操作,则应覆盖onStart。如果您想在每次活动变为可见/活动时执行某些操作,请使用onResume。如果你想为整个应用程序做一次性设置,即只运行一次,你应该使用onCreate,但检查你是否已经完成了这个设置,只有你没有这样做。

查看此页面上非常有用的图表:Activity reference

答案 4 :(得分:0)

此网站提供Android生命周期的可靠图形表示:http://developer.android.com/training/basics/activity-lifecycle/starting.html

只要应用程序变得可见,就会调用

onStart()。这包括首次创建应用程序时以及何时将其带回屏幕而不终止。当用户切换应用程序并且应用程序位于后台时,会发生第二种情况。当应用程序变为不可见时,将调用onStop(),但当应用程序完全“销毁”时,将调用onDestroy()。在onDestroy()调用之后,必须在生命周期的开始时再次创建应用程序。

重要的是要注意,在应用程序因对话之类的东西而失去焦点后,不会调用onStart()。在这种情况下,重新调整焦点时会调用onPause(),然后调用onResume()