首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意图- setData与Extras

意图- setData与Extras
EN

Stack Overflow用户
提问于 2016-02-18 17:49:09
回答 2查看 1.2K关注 0票数 1

对于意图,我不太理解数据字段的真正用途。

我见过以下例子:

代码语言:javascript
复制
Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:"+number));
        startActivity(intent);

因此,从文档来看,数据似乎只是给出了URI,基本上是数据所在的位置。

不能所有事情都用putExtra来完成,让Activity得到额外的东西。

对于上面的例子,您只需将电话号码放入额外的,让活动得到额外的,然后拨。您什么时候使用setData vs putExtra

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-18 18:05:09

不能所有的事情都用putExtra来做,让活动得到额外的东西。

额外的不控制Intents的路由。操作字符串、数据(Uri)、MIME类型和类别可以执行。额外的只是有效载荷。

在这种情况下,ACTION_CALL of tel: Uri的处理方式可能与sip: UriACTION_CALL不同。只有与SIP兼容的VOIP客户端才能处理后者。因此,与电话相关的应用程序的活动可以在其<intent-filter>元素中包含细节,以便只监视它们能够处理的Uri方案(以及其他可能的约束)。

票数 4
EN

Stack Overflow用户

发布于 2016-02-18 17:59:15

putExtra实际上在意图中添加了数据。当它被发送到另一个被反序列化的活动时,它就会被序列化。这些都是代价高昂的操作,可能会影响性能。像这样发送多少数据也是有限制的。如果您有大量的数据(几个MBs),那么最好使用setData而不是putExtra。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35488782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档