一个应用通常有多个Activity。每个Activity围绕一个特定的功能设计,用户可以操作它,并且可以启动其他的Activity。例如,一个电子邮件应用可能有一个Activity呈现新邮件列表,当用户选择了一封邮件,会打开一个新的Activity来呈现邮件内容。
一个Activity可以启动另一个应用的Activity。例如,如果应用想要发送Email,您可以定义一个Intent来执行一个发送操作并且携带一些数据:Email的地址、消息。一个其他应用的Activity需要声明可以处理这类的Intent。在这个例子中,Intent是要发送一封Email,所以一个Email应用会启动(如果有多个Activity支持同一个Intent,系统会让用户选择要使用哪一个)。当Email被发送出去,Activity会恢复,看起来Email Activity就是应用的一部分。为维护这种无缝的用户体验,尽管Activity可能来自于不同的应用,Android系统依然会将这些Activity保存在同一个任务中。
Android中Intent实现两个不同应用Activity的跳转,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”,专门提供组件互相调用的相关信息。
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcasts,如表3-3所示。
表3-3 Inten启动组件的方法
Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务、以及发送广播等场景,由于服务、广播等概念暂时还未讲解,那么我们主要介绍启动活动。
Intent切换Activity的方法如下。
Intent intent=new Intent(当前Activity.this,要跳转到Activity.class);
startActivity(intent);
Intent的用法大致可以分为两种:显式Intent和隐式Intent。先来看一下显式Intent的使用方法。
1.显式Intent(www.xing528.com)
明确指出第一个和第二个Activity,方法如下。
2.隐式Intent
相比于显式Intent,隐式Intent则含蓄得多,并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的Action和Category等信息,然后交由系统去分析这个Intent,帮我们找出合适的活动并启动。
使用隐式Intent,不仅可以启动自己程序内的Activity,还可以启动系统内置的Activity。
例如,调用系统的拨号Activity的代码如下。
执行结果如图3-29所示。
图3-29 拨号Activity
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。