OnCreate()vs OnStart()

Jos*_*ith 10 android android-lifecycle android-activity

可能重复:
onCreate()和onStart()之间的区别?
Android活动生命周期 - 这些方法有哪些?

OnCreate和OnStart有什么区别?

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

Dav*_*ton 15

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

  • 从技术上讲并非如此,当您说“失去焦点”时,可能会在出现弹出窗口(对话框)时发生这种情况。`Activity` 仍然可见,并且只会被暂停而不是停止。当弹出窗口关闭时,底层的“Activity”将被恢复。 (2认同)

Eri*_*ric 11

严肃的文档 - 我不是开玩笑 - 有一个非常非常漂亮的图像,描述Activity生命周期(它如何开始,工作和完成)的运作方式.

这里直接链接的图像基本上是这样说的:

  • onCreate()Activity创建时调用; 也就是说,它是启动或启动的.(此外,当方向更改时会触发此操作.)在进程被终止时再次调用它,然后返回.
  • onStart()onCreate()在启动时被称为跟随.此外,当应用程序导航回到之后onStop()(和之后onRestart())时也会调用它,这在Activity不再可见之后发生(这是在" 用户可以在屏幕上看到活动的时间" ,尽管可能不是在前台并与用户交互 ").

该图在不到1000字的情况下诚实地解释了它.


Dav*_*ood 5

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

onDestroy 在活动被处置或关闭时被调用。下次打开时,将调用 onCreate。

每当应用程序离开视图并且不再可见时,就会调用 onStop。这通常是由于在旧活动之上创建了新活动造成的。当 Activity 再次可见时,将调用 onStart。

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