Android面试必备:Activity生命周期详解

需积分: 3 7 下载量 107 浏览量 更新于2024-09-19 收藏 94KB DOCX 举报
"Android知识点面试题解析" Android系统基础是开发者面试和笔试中常见的考察点,尤其是Activity生命周期的理解和管理。Activity作为Android应用的核心组件,它的生命周期贯穿于应用的始终,理解并能熟练处理各个状态之间的转换至关重要。 Activity的生命周期主要包含以下几个关键阶段: 1. **onCreate()**: 当Activity首次创建时,此方法被调用,主要用于初始化界面布局和数据。在这里可以设置视图、绑定事件监听器以及进行必要的数据加载。 2. **onStart()**: 随后调用onStart(),Activity开始变得可见,但此时用户还无法与其交互。这是一个合适的时机对用户不可见的状态进行设置,比如调整透明度等。 3. **onResume()**: Activity进入可交互状态,用户可以与之交互。在onResume()之后,Activity位于栈顶,成为前台活动。在此阶段,应用应尽快完成任何耗时操作,以提供流畅的用户体验。 4. **onPause()**: 当另一个Activity即将获取焦点时,当前Activity会调用onPause()。尽管Activity仍可见,但可能部分或全部被遮挡,不再接收用户输入。在这个阶段,应保存临时数据,例如用户的输入,因为系统可能会回收Activity。同时,应尽量快速执行此方法,以便新Activity能够快速启动。 5. **onStop()**: 当Activity完全不可见,被其他Activity覆盖时,调用onStop()。此时,Activity进入了停止状态,大部分资源会被释放,但系统仍保留其状态。 6. **onDestroy()**: Activity被销毁前的最后一步,可能是用户手动调用finish()或系统为释放资源而关闭Activity。在这里,应清理所有资源,如取消正在运行的任务、关闭数据库连接等。需要注意,如果Activity被系统回收,isFinishing()返回true,可以用来判断是否是用户主动结束。 在Activity的生命周期中,还有一个重要的方法**onSaveInstanceState(Bundle outState)**,用于保存Activity的状态。当Activity被系统销毁(如屏幕旋转、内存不足等)时,系统会调用这个方法,开发者可以将关键数据放入outState Bundle中,以便在Activity重建时恢复。例如: ```java @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong("id", 1234567890); } ``` 当Activity被重新创建时,可以通过onCreate()或onRestoreInstanceState(Bundle savedInstanceState)来恢复之前保存的状态。 在Activity A运行时启动Activity B,A会经历onSaveInstanceState()过程。当B完成并返回到A时,A可能需要恢复之前的状态。如果是系统回收再重建的A,那么在onCreate()或onRestoreInstanceState()中可以读取保存的outState数据;如果是用户返回的A,那么onStart()和onResume()会被调用,此时不需要再次恢复数据。 掌握Activity的生命周期管理对于开发高效、稳定的Android应用至关重要,同时也常是面试中的重点考察点。了解每个方法的用途,以及何时保存和恢复数据,可以帮助开发者更好地应对各种场景,提升用户体验。