首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在安卓系统中发送电子邮件时,在StartActivity()中使用Intent.createChooser()的目的是什么

在安卓系统中发送电子邮件时,在StartActivity()中使用Intent.createChooser()的目的是什么
EN

Stack Overflow用户
提问于 2010-09-27 21:29:13
回答 5查看 48.1K关注 0票数 40

当我们需要在安卓系统中发送电子邮件时,我们将使用Intent.ACTION_SEND调用注册的电子邮件应用程序,如下所示

代码语言:javascript
复制
Intent i = new Intent(Intent.ACTION_SEND);
startActivity(Intent.createChooser(i, "Send mail..."));

我的疑问是为什么我们需要在startActivity中使用Intent.createChooser,而不是使用startActivty(i)。使用Intent.createChooser()有什么特别的原因吗?

EN

回答 5

Stack Overflow用户

发布于 2010-09-27 21:37:48

选择器使用户能够选择默认邮件应用程序之外的其他邮件应用程序。这是非常有用的,如果你使用普通的gmail (私人)和电子邮件(工作相关),你想选择哪一个。

应该始终使用...

票数 12
EN

Stack Overflow用户

发布于 2012-07-14 12:59:11

但对于遇到它的其他人,您可以将意图上的类型设置为mime类型的电子邮件,这至少会将其限制为可以发送适当类型的消息的应用程序:

代码语言:javascript
复制
Intent i = new Intent(Intent.ACTION_SEND); 
i.setType( "message/rfc822");
startActivity(Intent.createChooser(i, "Send mail..."));

使选择器对话框更清晰。

票数 11
EN

Stack Overflow用户

发布于 2014-03-27 05:04:31

如果你不使用createChooser(),系统仍然会显示选择器对话框,除非用户已经表示他们已经决定使用哪个已安装的程序来完成给定的任务(或者他们已经撤销了之前的决定)。

如果使用createChooser(),系统将始终显示该对话框,即使已经有明确的首选项也是如此。

所以,这两个都是绝对正确的,你必须决定在任何给定的情况下使用哪一个。您的使用里程可能有所不同,但基本上,如果您提供文本、图像、视频或类似的显示或编辑格式,您可能希望省略createChooser(),这样用户已经喜欢的任何内容都可以立即开始。另一方面,如果你想分享一些你希望用户每次使用不同的安装程序来处理的事情(比如,发送电子邮件、Facebook、聊天等等),你可能想要使用createChooser()让你的用户更容易地在运行中进行选择。

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

https://stackoverflow.com/questions/3804233

复制
相关文章

相似问题

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