android 意图过滤,Android 意图(Intent)及过滤器(Filter).pdf

Android 意图(Intent)和过滤器(Filter)

Android 意图(Intent)和过滤器(Filter)

Android意图是⼀个要执⾏的操作的抽象描述。它可以通过 startActivity 来启动⼀个活

动,broadcastIntent 来发送⼴播到 何对它感兴趣的⼴播接受器组件,

startService(Intent) 或者bindService(Intent , ServiceConnection , int) 来与后台服务通

讯。

意图本⾝ (⼀个 Intent 对象)是⼀个被动的数据结构,保存着要执⾏操作的抽象描

述。

例如,你有⼀个活动,需要打开邮件客户端并通过 Android 设备来发送邮件。为了这

个⽬的,你的活动需要发送⼀个带有合适选择器的 ACTION_SEND 到 Android 意图处

理者。指定的选择器给定合适的界⾯来让⽤户决定如何发送他的邮件数据。

Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"

email.putE tra(Intent.EXTRA_EMAIL, recipients);

email.putE tra(Intent.EXTRA_SUBJECT, subject.getTe t().toString())

email.putE tra(Intent.EXTRA_TEXT, body .getTe t().toString());

startActivity(Intent.createChooser(email, "Choose an email client

上⾯的语法调⽤ startActivity ⽅法来开启邮件活动,代码运⾏结果看起来像这样:

例如,你有⼀个活动,需要在 Android 设备上通过浏览器打开⼀个URL 。为了这个⽬

的,你的活动发送 ACTION_WE _SEARCH 意图到 Android 意图处理器来在浏览器中

打开给定的 URL 。意图处理器通过解析⼀系列活动,并选择最适合你的意图的⼀个

活动,在这个例⼦中,是 Web 浏览器活动。意图处理器传递你的⽹页地址到 Web 浏

览器,并打开 Web 浏览器活动。

String q = "http://www .";

Intent intent = new Intent(Intent.ACTION_WEB_SEARCH );

intent.putE tra(SearchManager.QUERY, q);

startActivity(intent);

上⾯的例⼦将在Android搜索引擎上查找"www .uprogrammer .cn" ,并在⼀个活动上给出

关键词的结果。

对于每⼀个组件-活动,服务,⼴播接收器都有独⽴的机制来传递意图。

⽅法和描述

1 Context .startActivity():意图传递给该⽅法,⽤于启动⼀个新的活动或者让已存在

的活动做⼀些新的事情。

2 Context .startService():意图传递给该⽅法,将初始化⼀个服务,或者新的信息到⼀

个持续存在的服务。

3 Context .send roadcast():意图传递给该⽅法,信息将传递到所有对此感兴趣的⼴

播接收器。

意图对象

意图对象是⼀包的信息,⽤于组件接收到的意图就像 Android 系统接受到的信息。

意图对象包括如下的组件,具体取决于要通信或者执⾏什么。

动作(Action)

这是意图对象中必须的部分,被表现为⼀个字符串。在⼴播的意图中,动作⼀旦发

⽣,将会被报告。动作将很⼤程度上决定意图的其他部分如何被组织。Intent 类定义

了⼀系列动作常量对应不同的意图。这⾥是⼀份Android意图标准动作列表。

意图对象中的动作可以通过 setAction() ⽅法来设置,通过 getAction() ⽅法来读取。

数据(Data)

添加数据规格到意图过滤器。这个规格可以只是⼀个数据类型(如元类型属性) ,⼀条

URI ,或者同时包括数据类型和 URI 。 URI 则由不同部分的属性来指定。

这些指定 URL 格式的属性是可选的,但是也相互独⽴ -

如果意图过滤器没有指定模式,所有其他的 URI 属性将被忽略。

如果没有为过滤器指定主机,端⼜属性和所有路径属性将被忽略。

setData() ⽅法只能以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值