onResume什么时候执行,执行几次的问题

一个Activity活动就是一个界面的布局。
程序正常启动时:onCreate()->onStart()->onResume();
onCreate()在活动第一次创建时被调用,主要用于加载布局
onStart()这个方法在活动由不可见变为可见的时候调用。
onResume这个方法在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态.
三种调用的场景:
一个Activity启动另一个Activity: onPause()->onStop(),再返回:onRestart()->onStart()->onResume()
程序按back 退出: onPause()->onStop()->onDestory(),再进入:onCreate()->onStart()->onResume();
程序按home 退出: onPause()->onStop(),再进入:onRestart()->onStart()->onResume();

生命周期的一些细节:
1     Activity 第一次创建时会调用 onCreate(Bundle)。 该方法用于创建 Activity 的用户界 面,创建所需的后台线程,并执行其他的全局初始化。如果能获得Activity以前的 状态,就可以将包含此状态的 android.os.Bundle 对象传给onCreate();否则就传入 一个空引用。在调用 onCreate(Bundle)之后,
Android 总会调用 onStart()。
2      在用户看到 Activity 之前会调用 onStart()方法。当 Activity 进入前台时, Android 在调用 onStart()之后就会调用 onResume();当 Activity 变成隐藏状态时, Android 就会在调用 onStart()之后调用 onStop()
3      当 Activity 停止后,在其重新启动之前会调用 onRestart()。在调用 onRestart()之后, Android 会调用 onStart()。
4      在 Activity 开始跟用户交互之前会调用 onResume()。此时, Activity 获得了焦点, 用户的输入会发送给该 Activity。当 Activity 必须暂停时,Android 就会在调用 onResume()之后调用 onPause()
5      当 Android 要恢复另一个 Activity 时会调用 onPause()。该方法一般用于保留未保存 的修改,停止可能会消耗处理器资源的动画等。它应该很快地完成工作,因为只 有等该方法返回时,下一个 Activity 才能被重新激活。在调用了 onPause()之后, 当 Activity 开始跟用户交互时, Android 就会使用onResume(),当 Activity 变成隐 藏状态时调用 onStop()。 许多 Activity 执行 onPause()方法来提交数据的改变或者准 备停止与用户的交互操作。
6      当 Activity 变为隐藏状态时会调用 onStop()。这种情况可能发生在 Activity 被销毁 或者另一个 Activity(正在运行的或新启动的)被重新激活并将覆盖前一个 Activity 时。在调用 onStop()之后,如果 Activity 重新跟用户交互, Android 会调用 onRestart() 方法;
7     如果 Activity 退出了,就会调用 onDestroy()方法。
8      在 Activity 被销毁之前会调用 onDestroy(),除非是内存不够, Android 强行终止了 Activity 的进程。在这种情况下就不会调用 onDestroy()。如果调用了 onDestroy(), 那它就是该 Activity 接收的最终调用。在 onPause()、 onStop()或 onDestroy()返回之 后, Android 可以终止托管 Activity 的进程。从 onPause()返回后到调用 onResume() 之前, Activity 都处于可终止状态。在 onPause()再次返回之前, Activity 都不会再 处于可终止状态。

猜你喜欢

转载自blog.csdn.net/xuyong282373443/article/details/73294308
今日推荐