继承Activity的函数(如onCreateOptionsMenu)调用顺序与生命周期关联问询
Activity 生命周期与菜单相关函数的调用顺序
正常启动Activity的完整流程
onCreate():初始化Activity布局、数据等核心内容onStart():Activity变为可见状态,但尚未获取交互焦点onResume():Activity获取焦点,进入可交互状态onCreateOptionsMenu():首次创建选项菜单,仅在菜单未存在时触发一次onPrepareOptionsMenu():每次选项菜单即将显示前调用(比如用户点击菜单按钮)
从后台恢复至前台的流程
当Activity被退到后台(比如按Home键)再回到前台时:
onRestart():Activity从后台状态恢复启动onStart()onResume()onPrepareOptionsMenu():此时不会重复调用onCreateOptionsMenu(),除非菜单已被主动销毁
销毁流程
当Activity被销毁时(比如按返回键、系统回收):
onPause():Activity失去焦点,停止交互onStop():Activity变为不可见onDestroyOptionsMenu():选项菜单被销毁(系统会自动触发,无需手动调用)onDestroy():Activity彻底销毁,释放资源
特殊触发场景
- 手动调用
invalidateOptionsMenu():会强制系统重新构建菜单,此时若Activity处于可见状态,会依次触发onCreateOptionsMenu()→onPrepareOptionsMenu() - 屏幕旋转等配置变更:Activity会经历销毁重建流程,菜单相关函数会跟随生命周期重新调用一遍
内容的提问来源于stack exchange,提问作者Nadav
相关产品推荐
相关产品推荐

