Android Activity与Intent深度解析:生命周期与实战示例

0 下载量 58 浏览量 更新于2024-08-28 收藏 111KB PDF 举报
"本文详细介绍了Android中的核心组件Activity和Intent的使用,包括Activity的生命周期和Intent的分类。通过示例代码展示了如何在不同场景下运用这些概念。" 在Android开发中,Activity是用户界面的主要构成部分,它代表了一个可视化的用户交互界面。Service则是在后台运行的组件,而BroadcastReceiver用于接收并响应系统或应用广播事件。这三者都可以通过Intent进行启动和通信。 Intent是Android中的一种重要机制,它用来表示应用中不同组件之间的交互意愿。Intent分为显式Intent和隐式Intent两种类型。显式Intent明确指定了要启动的组件名称,通常在同一应用程序内的不同Activity之间使用。而隐式Intent并不指定特定组件,而是根据Intent中的Action、Data、Category等信息匹配系统中能够处理该Intent的任何组件,这使得调用系统服务或者第三方应用成为可能。 Activity的生命周期由以下几个关键方法组成: 1. onCreate():Activity首次创建时调用,用于初始化UI和数据。 2. onStart():当Activity变得对用户可见时调用。 3. onResume():Activity获取焦点并准备与用户交互时调用。 4. onPause():当Activity即将被另一个Activity覆盖或用户离开时调用,此阶段应该快速执行,因为系统可能会在此时暂停或销毁Activity。 5. onStop():当Activity完全不可见时调用,不再占用用户界面资源。 6. onDestroy():Activity被彻底销毁前调用,可能是用户关闭或系统回收内存时。 在示例中,当从Activity1跳转到Activity2时,Activity1经历onPause()、onStop()和onDestroy()。如果在Activity2中调用finish()返回Activity1,则Activity2会经历onPause()、onStop()和onDestroy(),而Activity1则会经历onRestart()、onStart()和onResume()。 为了在项目中添加新的Activity,开发者需要在AndroidManifest.xml文件的<application>标签内声明新Activity。例如,对于名为Activity2的新Activity,声明如下: ```xml <activity android:name=".Activity2"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 这段代码定义了Activity2,并设置了它作为应用程序的入口点,可以通过LAUNCHER类别在应用启动器中显示。 此外,Intent可以携带数据通过Bundle对象传递。例如,创建一个Intent并附带数据: ```java Intent intent = new Intent(this, Activity2.class); Bundle bundle = new Bundle(); bundle.putString("key", "value"); intent.putExtras(bundle); startActivity(intent); ``` 在目标Activity中,可以这样接收数据: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if (bundle != null) { String value = bundle.getString("key"); // 使用接收到的数据 } } ``` 理解Activity的生命周期和Intent的工作原理是Android开发的基础,这有助于构建高效且用户体验良好的应用。通过熟练掌握这些概念,开发者能够更好地控制应用的行为,实现各种复杂的功能。