Android面试精华:Fragment交互与Activity生命周期详解

2 下载量 157 浏览量 更新于2024-07-15 收藏 189KB PDF 举报
在Android面试中,关于Activity和Fragment的知识点占据了重要的地位,因为它们是Android应用的核心组件。首先,我们来看一下Fragment与Activity的交互: 1. **Fragment之间的数据交互**: - **通过Bundle传递参数**:Fragment之间可以通过Bundle对象来传递数据,这是一种常见的数据传递方式,尤其是在Activity启动或替换Fragment时,可以将数据封装在Bundle中,从一个Fragment传递到另一个Fragment。 2. **回调接口实现通信**: - Fragment内部定义一个回调接口,例如`OnFragmentInteractionListener`,然后让宿主Activity实现这个接口。这样,当Activity需要向Fragment提供信息时,只需通过接口调用相应的方法,实现了Activity与Fragment之间的松耦合通信。 接下来,了解Activity的关键生命周期方法及其启动模式: - **Activity生命周期方法**: - `onCreate()`:首次创建Activity时调用,用于初始化Activity的基本设置,如加载布局、初始化控件和绑定事件。 - `onStart()`:Activity变为可见但可能还在后台运行时调用。 - `onResume()`:Activity准备接受用户交互时调用,通常位于返回栈顶部且活动状态为运行。 - `onPause()`:当系统准备切换到其他Activity时调用,但在对话框式Activity中,不会触发`onStop()`。 - `onStop()`:Activity完全不可见时调用,区别于`onPause`,不适用于对话框Activity。 - `onDestroy()`:Activity即将被销毁前调用,此时无法再接收用户输入。 - `onRestart()`:Activity从停止状态恢复到运行状态前调用,表示Activity被重新启动。 - **Activity启动模式**: - **标准模式(Standard)**:每次启动都会创建新的实例。 - **栈顶复用模式(SingleTop)**:如果Activity已经存在,且处于栈顶,则复用现有实例,避免重复创建。 - **栈内复用模式(SingleTask)**:每个任务只有一个Activity实例,如果任务栈中包含该Activity,那么启动时复用,否则创建新实例。 - **单例模式(SingleInstance)**:确保在整个应用程序生命周期内,只有一个实例,常用于处理系统服务或有特殊需求的应用。 最后,Activity的启动流程涉及Context的`startActivity()`方法,通过Instrumentation跨进程调用AMS(Activity Manager Service)的`startActivity()`,在合法性的检查后,根据启动模式的不同,进行相应的操作。 掌握这些技术点能够帮助你在Android面试中展现出扎实的基础和对框架深入的理解。在实际开发中,理解并灵活运用这些概念对于构建高效、可维护的应用至关重要。