Android面试必备:70+面试题深度解析

5星 · 超过95%的资源 需积分: 10 259 下载量 59 浏览量 更新于2024-07-30 11 收藏 308KB DOC 举报
"Android面试题集锦,涵盖了Activity的基本概念、生命周期及其在实际开发中的应用。" 在Android应用开发中,Activity是四大组件之一,它代表着应用程序中的一个用户交互界面。通常情况下,每个用户界面都会对应一个独立的Activity实例。在创建Activity时,我们通常会使用`setContentView()`方法来设定界面布局,然后通过如`setOnClickListener()`这样的方法来为界面元素绑定事件监听器。由于Activity是Context的子类,并实现了Window.Callback和KeyEvent.Callback接口,因此它可以处理窗口事件和键盘事件。 Activity的生命周期是面试中经常被问到的一个关键点。Activity从创建到销毁会经历多个状态,包括: 1. `onCreate()`: Activity首次创建时调用,用于初始化界面和数据。 2. `onStart()`: Activity变得对用户可见时调用,但用户还不能与其交互。 3. `onResume()`: Activity获得焦点并可以与用户进行交互时调用。 4. `onPause()`: 当Activity被其他Activity覆盖或部分被遮挡时调用,此时仍保持部分可见性。 5. `onStop()`: Activity完全不可见时调用,用户无法感知其存在。 6. `onDestroy()`: Activity将被系统销毁时调用,通常是内存不足或用户主动结束。 在Activity的生命周期中,`onRestart()`方法在Activity被`onStop()`后,但未被`onDestroy()`,当Activity重新回到前台时调用。如果Activity已被销毁,再次启动时将调用`onCreate()`。 在实际项目中,比如在豆瓣客户端,为了确保用户每次进入界面都能看到最新数据,我们通常会在`onStart()`中进行数据的刷新操作。对于多媒体播放,当来电或其他情况导致Activity被`onStop()`时,应暂停视频播放(例如`mediaplayer.pause()`),并将音量设为0。在`onStart()`中,根据之前保存的状态恢复播放现场,例如`mediaplayer.start()`,这样可以提供无缝的用户体验。 此外,Activity还有`onPostResume()`和`onPostCreate()`两个生命周期方法。`onPostResume()`在`onResume()`之后调用,一般用于在用户可以交互之前执行一些额外的初始化工作。`onPostCreate()`则在`onCreate()`完成之后调用,用于在界面创建完毕后执行一些后续操作。尽管这两个方法在某些场景下可能不常用,了解它们的存在可以帮助开发者更全面地理解Activity的生命周期管理。