请求列出并解析Android Activity生命周期各方法及系统触发时机
Android Activity 生命周期核心方法及触发时机
创建与初始化阶段
onCreate():Activity刚被创建时第一个执行的方法,整个生命周期内只会调用一次。不管是用户首次打开,还是被系统销毁后重建,只要是新实例创建就会触发。核心初始化工作都放在这儿:设置布局(setContentView())、绑定控件、初始化数据、注册监听器等。onStart():Activity从完全不可见状态变为可见时触发,比如刚启动后的第一步,或者从后台切回但还没到可交互状态。这个方法会反复调用,每次Activity要出现在用户视线里都会执行。
前台交互阶段
onResume():Activity彻底进入前台、能和用户正常交互时触发。比如启动完成后、弹出的Dialog关闭后回到当前页面,或者从其他App切回当前应用。此时Activity处于栈顶,可接收所有用户操作(触摸、点击等),会根据场景多次触发。
暂停与停止阶段
onPause():Activity失去焦点但未完全被遮挡时触发,比如弹出半透明弹窗、跳转到新Activity但当前页面还能部分可见。这里要暂停消耗资源的操作:比如停止动画、暂停视频播放,临时数据也可以在此保存,但别做耗时操作——系统会等这个方法执行完才会启动下一个页面。onStop():Activity完全被遮挡、用户完全看不到时触发,比如打开了新的全屏Activity、按Home键回到桌面。这里可以做彻底的资源释放:取消广播监听、清理内存缓存。注意如果系统内存不足,可能直接销毁该Activity而不调用onDestroy(),重要数据别等到这个阶段才保存。
销毁阶段
onDestroy():Activity被销毁前最后一个执行的方法,触发场景包括用户按返回键关闭、调用finish()方法、系统因内存不足回收。这里要做最终的资源清理:关闭数据库连接、释放所有持有的资源。
补充状态相关方法
onRestart():Activity从停止状态(完全不可见)回到可见时触发,比如从桌面切回之前打开的应用。调用顺序为onRestart()→onStart()→onResume()。onSaveInstanceState(Bundle outState):当系统可能会销毁Activity时触发(比如屏幕旋转、内存紧张),用来保存临时状态,比如输入框内容、列表滚动位置。它在onPause()之前执行,恢复状态可在onCreate()或onRestoreInstanceState()中完成。onRestoreInstanceState(Bundle savedInstanceState):Activity被系统销毁后重建时触发,专门用来恢复之前保存的状态,在onStart()之后执行。
内容的提问来源于stack exchange,提问作者aosumi
相关产品推荐
相关产品推荐

