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

需积分: 9 2 下载量 42 浏览量 更新于2024-07-28 收藏 333KB DOC 举报
"Android面试题整理,涵盖Activity概念、生命周期及应用实例" 在Android开发中,Activity扮演着至关重要的角色,它是应用程序与用户交互的主要接口。一个Activity通常对应一个用户界面,通过`setContentView()`方法设置要展示的布局,并可以通过如`button.setOnClickListener{}`这样的代码来监听用户操作。值得注意的是,Activity是Context的子类,这意味着它能够访问系统服务,同时也实现了Window.Callback和KeyEvent.Callback接口,使得它可以处理窗口事件和按键事件。在实际开发中,我们可能会根据需求创建各种特定类型的Activity,如ListActivity、PreferenceActivity、TabActivity,甚至自定义一个BaseActivity作为基类,以实现界面的共性功能。 Activity的生命周期是Android开发者必须深入理解的概念,它描述了Activity从创建到销毁的整个过程,以及在这个过程中执行的方法。Activity有以下几个关键状态:新建(onCreate())、初始化(onStart())、可见(onResume())、暂停(onPause())、停止(onStop())、销毁(onDestroy())。此外,还有onRestart()方法,它在Activity被onStop()之后,但未被onDestroy()的情况下,当Activity重新回到前台时调用。 生命周期的这些方法成对出现,形成了一种对应关系:onCreate()与onDestroy()对应Activity的创建与销毁,onStart()与onStop()对应Activity的可见与不可见,onResume()与onPause()对应Activity获取焦点与失去焦点。onRestart()则是在Activity被暂停后,但未被完全销毁,再次启动时调用,避免了重新创建Activity的开销。 在实际应用中,例如在豆瓣客户端中,为了保证用户每次打开界面都能看到最新的数据,开发者通常会在onStart()方法中进行数据刷新操作。而对于多媒体播放的处理,当来电导致Activity被onStop()时,应该暂停视频播放,将音量设为0,并记录当前播放位置。当Activity再次onStart()时,根据之前保存的状态恢复现场,继续播放媒体文件。 另外,Activity还有两个不太常见的生命周期方法:onPostResume()和onPostCreate()。onPostResume()在onResume()之后调用,用于执行一些需要在完全恢复活动后进行的额外工作。而onPostCreate()则是在onCreate()完成并设置完视图后调用,一般用得较少,但在特定场景下可能需要用来做进一步的初始化工作。尽管在日常开发中可能较少直接使用这两个方法,了解它们的存在可以帮助开发者更全面地理解和控制Activity的生命周期。