Activity的生命周期
Activity常见知识点
1. 介绍下Activity的各个生命周期及其作用?
- onCreate():表示Activity正在创建,此时界面不可见;可以在这个方法里初始化控件,初始化数据等操作。
- onStart():表示Activity正在启动,界面可见但不可交互;可用于界面刷新工作,比如设置控件可见性、开启动画等;Activity每次从后台进入前台,均会执行onStart()方法。
- onResume():表示Activity已进入前台,可以与用户进行交互;可用于收集页面打开率,用户活跃度等数据。
- onPause():表示Activity正在停止,界面仍然可见但已失去焦点;可以在这个方法里停止动画,保存数据等操作。
- onStop():表示Activity已进入后台,界面不可见;可用于取消网络连接,注销广播接收器等操作。
- onDestroy():表示Activity即将被销毁,界面不可见;可用于数据销毁,资源回收等操作。
2. Activity从前台进入后台,到再被用户从后台切换到前台,会依次执行哪些方法?
- Activity从前台进入后台时会依次执行:onPause() > onStop()
- Activity从后台进入前台时会依次执行:onRestart() > onStart() > onResume()
3. 当后台的Activity因内存不足被系统强制回收后,再次唤起会依次执行哪些方法?
- 当后台的Activity因内存不足被回收后,该Activity虽未执行onDestroy(),但已经被销毁。
- 再次唤起该Activity时,会重新创建该Activity,会重新执行onCreate() > onStart() > onResume()。
4. 哪些情况下销毁Activity不会执行onDestroy()方法?
当Activity异常退出时,不会执行onDestroy()方法。主要有以下3种情况:
- Activity内的代码抛出异常导致Activity崩溃。
- 因系统内在不足,后台Activity被强制回收。
- 用户从最近应用列表杀进程退出Activity。