深入理解Android面试核心:Activity生命周期与Intent通信

需积分: 0 0 下载量 104 浏览量 更新于2024-08-04 收藏 24KB DOCX 举报
"这篇博客主要讨论了Android面试中经常被问到的Activity相关知识,包括Activity的生命周期、Activity属性设定、onSaveInstanceState方法以及Intent在Activity间通信的作用。" 在Android开发中,Activity是一个非常核心的概念,它是用户界面的主要构成部分,相当于其他平台上的窗口或视图。面试中,对Activity的深入理解是评估开发者技能的关键点。 一、Activity的生命周期 Activity的生命周期由系统管理,主要包括以下关键方法: 1. `onCreate(Bundle savedInstanceState)`:当Activity首次创建时调用,用于初始化界面布局和数据。 2. `onStart()`:Activity变得对用户可见但不一定是前台活动时调用。 3. `onResume()`:Activity完全可见并处于活动状态,用户可以与其交互。 4. `onPause()`:当Activity即将被其他Activity覆盖但仍在内存中时调用,适合保存临时状态。 5. `onStop()`:Activity不再对用户可见时调用,如切换到其他Activity或屏幕熄灭。 6. `onDestroy()`:Activity将被销毁前调用,可能是系统内存紧张或用户退出。 生命周期的变化受到多种因素影响,如用户操作、系统资源需求等。开发者需要根据这些方法妥善处理资源释放和数据保存。 二、Activity属性设定 通过在AndroidManifest.xml文件中配置Activity,可以设置启动模式、主题、权限等属性,影响Activity的行为。例如,`launchMode`可以设置为单实例(singleInstance)、单任务(singleTask)、单栈顶(singleTop)和标准模式(standard),控制Activity如何在任务栈中创建和管理。 三、onSaveInstanceState方法 当Activity即将被销毁且可能不会恢复时(如系统内存不足),系统会调用`onSaveInstanceState(Bundle outState)`方法,允许开发者保存关键数据到Bundle中。这个Bundle会在Activity重建时通过`onCreate(Bundle savedInstanceState)`或`onRestoreInstanceState(Bundle savedInstanceState)`传递回来,以便恢复之前的状态。 四、Intent的使用 Intent是Android中进行组件间通信的主要手段,可以用来启动Activity、Service,甚至BroadcastReceiver。在Activity之间跳转,Intent通常包含动作(ACTION)、数据(DATA)、类别(CATEGORY)等信息。通过`startActivity(Intent intent)`或`startActivityForResult(Intent intent, int requestCode)`启动新的Activity,并可以通过`setFlags()`设置Intent标志来控制启动行为。 总结来说,理解和熟练运用Activity的生命周期、属性配置、状态保存以及Intent通信是Android开发者必备的基础知识。在面试中,深入讨论这些问题不仅能展示你的专业技能,还能体现你对应用性能优化和用户体验的关注。