Activity生命周期中onStart()和onResume()的区别

Activity生命周期中onStart()和onResume()的区别

在讲onStart()和onResume()的区别之前,必须清楚Activity的四种状态:

1.Running状态:一个新的Activity的启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并,可与用户交互的激活装态;

2.Paused状态:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,他仍然可见,但是它已经失去焦点,故不可与用户交互。

3.Stopped状态:当Activity不可见时,Activity处于Stopped状态。当Activity处于此状态时,一定要保存当前数据和当前的UI状态,否则一旦Activity退出或关闭时,当前的数据和UI状态就丢失了。

4.Killed状态: Activity被杀掉以后或者被启动以前,处于Killed状态。这是Activity已从Activity堆栈中移除,需要重新启动CIA可以显示和使用。

以上四种状态,Running状态和Paused状态是可见的,Stopped状态和Killed状态时不可见的。

onStart()通常就是onStop()(用户按下home键,activity变为后台)之后用户再切回这个activity就会调用onRestart()然后调用onStart();

onResume()是onPaused()(activity被另一个透明或者Dialog样式的activity覆盖了)之后dialog取消,activity回到可交互状态,调用onResume();

注意: onPause()方法在弹出Dialog时不会被调用,而在被另一个透明或者Dialog样式的Activity覆盖时才会被调用。

附activity生命周期:


你可能感兴趣的:(Activity生命周期中onStart()和onResume()的区别)