当屏幕已经可见或变得可见时,是否会调用onStart?

时间:2014-06-26 07:12:58

标签: android lifecycle oncreate onstart

我查看了堆栈溢出的另一个线程(src:Difference between onCreate() and onStart()?) 该线程将onStart()方法描述为“当活动变得对用户可见时调用”。但是在同样的答案和oncreate方法的许多覆盖中,我看到在onCreate中调用了setContentView。不会让屏幕可见吗?因此,在那种情况下(在onCreate中调用setContentView),在屏幕对用户可见但在用户可以与之交互之前调用onStart()?

2 个答案:

答案 0 :(得分:4)

可以多次调用onStart()的机会。

onCreate():首次创建活动时调用。

onStart():当活动对用户可见时调用。

现在查看给Difference between onCreate() and onStart()?帖子的图表。如果没有杀死进程(如果再次调用了活动),则可以多次调用onStart()。

因此,如果您在onStart()设置视图,则需要将视图初始化为onStart()或更晚(即onResume())。这将是一个重复的过程。一次又一次初始化视图不是一个坏习惯吗?

希望我在这里很清楚。

答案 1 :(得分:1)

onCreate    called when activity is first created.
onStart     called when activity is becoming visible to the user.

以及

onResume    called when activity will start interacting with the user.
onPause     called when activity is not visible to the user.
onStop      called when activity is no longer visible to the user.
onRestart   called after your activity is stopped, prior to start.
onDestroy   called before the activity is destroyed.

有关onCreate和onStart之间的区别,请参阅此link