Android Activity与Intent深度解析:生命周期与实战示例
23 浏览量
更新于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开发的基础,这有助于构建高效且用户体验良好的应用。通过熟练掌握这些概念,开发者能够更好地控制应用的行为,实现各种复杂的功能。
2011-01-30 上传
246 浏览量
417 浏览量
1439 浏览量
128 浏览量
521 浏览量
128 浏览量
119 浏览量
198 浏览量