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

需积分: 0 2 下载量 165 浏览量 更新于2024-09-13 收藏 73KB DOC 举报
"这篇文档是关于Android面试题的汇总,涵盖了Activity生命周期、状态保存、Activity样式设置以及退出应用等多个核心知识点。" 1. Activity的生命周期是Android开发中的基础概念,它描述了Activity从创建到销毁的各个阶段。必经的三个方法是onCreate()、onStart()和onResume(),通常用AAA来表示。在不同场景下,Activity的调用顺序有所不同: - (1)父Activity启动子Activity,子Activity退出: AAA -> onFreeze() -> onPause() -> onStop() -> onRestart() -> onStart() -> onResume()... - (2)用户按下Home键: AAA -> onFreeze() -> onPause() -> onStop() -> Maybe -> onDestroy() -> Maybe - (3)调用finish(): AAA -> onPause() -> onStop() -> onDestroy() - (4)显示Dialog: AAA - (5)显示透明或非全屏Activity: AAA -> onFreeze() -> onPause() - (6)设备进入睡眠: AAA -> onFreeze() -> onPause() 2. 当后台Activity可能被系统回收时,为了保存当前状态,可以重写onSaveInstanceState()方法。这个方法会在Activity被销毁前调用,保存的数据会被传递到onCreate()或onRestoreInstanceState()中。如果Activity被回收,onCreate()会接收到savedInstanceState参数,允许恢复状态;如果没有被回收,Activity会直接执行onResume(),跳过onCreate()。 3. 将Activity设置为窗口样式,可以在AndroidManifest.xml中对Activity的定义添加特定的theme属性。例如,设置为对话框样式可以写成`android:theme="@android:style/Theme.Dialog"`,设置为半透明则可以使用`android:theme="@android:style/Theme.Translucent"`。 4. 退出应用通常不推荐直接调用System.exit(0),因为这可能无法正确清理资源。更推荐的方式是结束所有前台和后台的Activity,可以通过在某个Activity中调用`finish()`,或者使用静态Activity栈管理来依次关闭所有Activity。 这些面试题涉及了Android开发的核心概念,包括Activity的生命周期管理、状态保存机制以及界面表现形式,对于理解和掌握Android应用开发至关重要。学习并理解这些知识点可以帮助开发者更好地设计和维护Android应用程序。