Android面试必备:Activity生命周期详解与状态保存

4星 · 超过85%的资源 需积分: 9 34 下载量 157 浏览量 更新于2024-09-20 收藏 73KB DOC 举报
"这篇资源是关于Android面试题的全面整理,适合用来学习和复习Android开发的知识点。主要涵盖了Activity的生命周期、状态保存、Activity样式设置以及退出应用的方法等核心概念。" 1. Activity的生命周期是Android开发中的基础,它包括了以下几个主要方法: - onCreate(): 当Activity首次创建时调用,用于初始化界面和数据。 - onStart(): 在Activity可见但不一定是焦点时调用,用户能看到Activity。 - onResume(): 当Activity成为用户交互的焦点时调用,此时Activity完全活跃。 - onFreeze(): 这个不是标准生命周期方法,可能是描述错误,通常应该是onPause()。 - onPause(): 当Activity即将被另一个Activity覆盖或用户离开时调用,适合保存轻量级数据。 - onStop(): 当Activity完全不可见时调用,资源释放的好时机。 - onRestart(): 如果Activity被暂停后重新回到前台,会先调用此方法。 - onDestroy(): 当Activity将被销毁时调用,是清理资源的最后机会。 提到的几种情况: - (1)从父Activity启动子Activity,子Activity退出,父Activity会经历onPause() -> onStop() -> onRestart() -> onStart() -> onResume()。 - (2)用户按下Home键,Activity会经历onPause() -> onStop(),可能调用onDestroy()。 - (3)调用finish(),Activity会经历onPause() -> onStop() -> onDestroy()。 - (4)显示Dialog不会改变Activity的生命周期。 - (5)显示透明或非全屏Activity,主Activity会经历onPause()。 - (6)设备进入睡眠,Activity会经历onPause()。 2. 当后台的Activity可能被系统回收时,为了保存当前状态,应该重写onSaveInstanceState(Bundle outState)方法。在这个方法中,开发者可以将需要保存的数据放入Bundle,当Activity恢复时,可以通过onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle savedInstanceState)来恢复这些数据。 3. 要将一个Activity设置为窗口样式,可以在AndroidManifest.xml中对应的Activity标签内设置主题: - 使用`android:theme="@android:style/Theme.Dialog"`可以让Activity看起来像一个对话框。 - 使用`android:theme="@android:style/Theme.Translucent"`则可以使Activity具有半透明效果。 4. 退出应用通常有两种方式: - 通过连续两次按下Back键,大多数Android应用默认实现这一行为。 - 或者在需要的地方调用`finish()`方法关闭当前Activity,如果这是应用的最后一个Activity,应用将随之退出。但一般不推荐手动管理应用的退出,因为Android系统会自动管理Activity栈。 以上知识点是Android开发面试中常见的问题,理解并掌握它们对于开发者来说至关重要。通过学习和实践,可以提升在Android开发中的专业素养和面试竞争力。