掌握Activity与Fragment生命周期及Intent跳转关键

5星 · 超过95%的资源 需积分: 50 18 下载量 95 浏览量 更新于2024-09-09 收藏 158KB DOC 举报
在Android开发中,理解Activity和Fragment的生命周期以及Intent跳转对于构建高效且用户体验良好的应用至关重要。本文将深入剖析这两个关键概念。 首先,我们来探讨四大组件:Activity、Service、BroadcastReceiver和ContentProvider。Activity是Android应用程序的核心组成部分,它是展示用户界面的主要容器,负责接收用户的输入和处理用户交互。一个应用程序可以有多个Activity,它们通过不同的生命周期阶段管理自身的存在。 Activity的生命周期主要分为以下阶段: 1. onCreate(): Activity被创建时调用,这是初始化阶段,用于加载布局文件、设置控件属性和监听器,但UI并未显示,仅做准备工作。 2. onStart(): 当Activity变为可见并且可以接收到用户输入时,会触发这个回调。在此阶段,布局被绘制到屏幕上,可以更新界面内容。 3. onResume(): 当Activity获得焦点并处于可交互状态时,会进入此阶段,此时光标可用,用户可以直接与界面互动。 4. onPause(): Activity失去焦点但仍保留其状态,暂停响应用户输入,适合执行长时间运行的任务,但界面不可见。 5. onStop(): 活动暂停但未完全销毁,仅在内存不足时会被系统回收,以节省资源。 6. onRestart(): 在Activity被恢复到可交互状态之前调用,类似于onStart,但是在Activity被暂停后再重新启动。 7. onDestroy(): 最终销毁阶段,Activity即将被卸载,这时应清理所有资源,遵循后进先出的栈结构。 配置变化(configChanges)是一项重要的考虑因素,如屏幕方向改变,若不正确处理可能导致Activity重启。例如,设置`screenOrientation="portrait"`可确保在屏幕旋转时Activity保持竖屏模式,避免重启。 Intent是Android中的一个重要通信机制,用于在不同组件间传递数据。使用`putExtra()`方法可以在Intent中添加键值对,如: ```java data.putBoolean("key", true); data.putInt("anotherKey", 123); ``` 接收数据时,使用`getStringExtra()`或`getStringArrayListExtra()`等方法: ```java String value = getIntent().getStringExtra("key"); List<String> list = getIntent().getStringArrayListExtra("listKey"); ``` 在需要异步请求结果的情况,Activity可以通过`startActivityForResult()`启动新的Activity,并传递请求码。当请求完成时,通过`onActivityResult()`回调获取结果,如: ```java startActivityForResult(new Intent(this, NextActivity.class), REQUEST_CODE); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE) { if (resultCode == RESULT_OK) { String resultData = data.getStringExtra("result"); // 处理结果数据 } } } ``` Fragment作为Activity的一部分,提供了更灵活的布局管理。虽然Fragment有自己的生命周期方法,但它的生命周期管理通常与宿主Activity紧密关联。Fragment的`onAttach()`和`onDetach()`分别在它与Activity连接和断开时调用,确保了数据的一致性和内存管理。 理解和掌握Activity和Fragment的生命周期以及Intent的使用是Android开发者必备的技能,它们直接影响应用性能和用户体验。通过合理利用这些概念,开发者可以创建稳定、高效的应用程序。