Android面试题解析:Activity生命周期与管理

需积分: 3 4 下载量 61 浏览量 更新于2024-09-19 收藏 45KB TXT 举报
"Android面试题涉及了Activity的基本概念、生命周期管理、配置变化处理以及Activity间的切换等核心知识点。" 在Android开发中,Activity是四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之一,它是用户界面的主要载体。一个Activity通常对应着用户与应用交互的一个屏幕。`setContentView()`方法用于设置Activity要显示的布局资源,这使得UI元素能够呈现给用户。 Activity继承自Context,并且实现了Window.Callback和KeyEvent.Callback接口,因此它可以处理与窗口相关的用户交互事件。例如,你可以通过设置按钮的OnClickListener来监听并响应用户的点击事件: ```java button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在这里处理按钮被点击的逻辑 } }); ``` Activity的生命周期包括多个关键状态:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()。当Activity创建时,首先调用onCreate(),接着onStart()使Activity变得可见,然后onResume()使其获取焦点并处于运行状态。当用户离开Activity或有其他Activity覆盖它时,会依次调用onPause()、onStop(),如果Activity被销毁,还会调用onDestroy()。在某些特定情况下,如内存不足,系统可能会直接调用onDestroy(),而不会经过onStop()。 在Activity之间进行切换时,遵循一定的生命周期规律。比如从Activity A切换到Activity B,A会调用onPause(),接着B的onCreate()、onStart()和onResume()会被调用,此时B成为前台活动的Activity。如果B关闭,A会先调用onRestart(),然后onStart()和onResume(),恢复到之前的状态。 处理配置变化,如屏幕方向改变或键盘隐藏/显示,可以有两种方式。默认情况下,系统会销毁并重建Activity以应用新的配置。但可以通过在AndroidManifest.xml中指定`android:configChanges`属性来手动处理这些变化,例如: ```xml <activity android:name=".YourActivity" android:configChanges="orientation|keyboardHidden"> ... </activity> ``` 这样,当配置发生变化时,系统会调用onConfigurationChanged()方法,而不是重新创建Activity。如果你只想处理特定的配置变化,可以只列出相应的值,如"orientation"仅处理屏幕方向变化。 最后,关于Activity的启动模式,Android提供了多种方式来决定如何启动和管理Activity实例,如标准模式、单实例模式、单任务模式和单栈顶模式等,它们决定了Activity在任务栈中的行为,从而影响到Activity的启动、回退和销毁。 理解并熟练掌握Activity的生命周期、配置变化处理以及启动模式,对于Android开发者来说至关重要,因为这些都是构建稳定、高效应用的基础。在面试中,这些知识点也是常被问到的,因此深入学习和实践是必要的。