onStart()真正做了什么? - Android

ik0*_*024 2 android android-lifecycle

我一直想知道onStart()函数在android生命周期中的确切作用.网上的大多数资源只是说 - 它是在您的活动在屏幕上显示之前调用的.

但到目前为止我所做的应用程序我从未使用过onStart().我在onCreate()本身做了所有的初始化.

android生命周期中的所有其他状态都具有一些或其他意义,但onStart()的作用并不十分清楚.

在onStart()中是否有任何特定的事情要做?onStart()在生命周期中确实是必需的,因为所有初始化都可以在onCreate()中完成,并且在活动变得可见之前也会调用它.

任何人都可以帮助我清楚地了解onStart().提前致谢 :)

Dim*_*erg 7

onStart()当活动从停止状态恢复时调用.例如,如果您有活动A并从中启动活动B,则活动A将暂停(onPause())然后停止(onStop())并移至后台堆栈.在此之后,如果按回到活动B,B将暂停(onPause()),停止(onStop())和销毁(onDestroy()),活动A将从后堆栈,已启动(onStart())和恢复(onResume())恢复.如您所见,系统不会onCreate()再次调用A.

怎么用onStart()?例如,您应取消注册GPS,传感器等的监听器onStop()并再次注册onStart().如果您注册onCreate()并取消注册onDestroy(),则GPS服务将始终有效,并且会耗尽电池电量.

  • @user3064175 有不同的方法来处理这个问题,但我最喜欢的是假设一旦任何活动进入后台,接下来可能会调用 onCreate() 。我将需要的内容保存在 onPause() 中,然后在 onResume() 中将其带回。仅活动设置内容(获取对视图的引用、设置侦听器等)是在 onCreate() 中完成的。这涵盖了除电池拉动之外的所有情况,但我不是唯一一个对此有问题的人;) (2认同)