当我们需要在安卓系统中发送电子邮件时,我们将使用Intent.ACTION_SEND调用注册的电子邮件应用程序,如下所示
Intent i = new Intent(Intent.ACTION_SEND);
startActivity(Intent.createChooser(i, "Send mail..."));
我的疑问是为什么我们需要在startActivity中使用Intent.createChooser,而不是使用startActivty(i)
。使用Intent.createChooser()
有什么特别的原因吗?
发布于 2010-09-27 21:37:48
选择器使用户能够选择默认邮件应用程序之外的其他邮件应用程序。这是非常有用的,如果你使用普通的gmail (私人)和电子邮件(工作相关),你想选择哪一个。
应该始终使用...
发布于 2012-07-14 12:59:11
但对于遇到它的其他人,您可以将意图上的类型设置为mime类型的电子邮件,这至少会将其限制为可以发送适当类型的消息的应用程序:
Intent i = new Intent(Intent.ACTION_SEND);
i.setType( "message/rfc822");
startActivity(Intent.createChooser(i, "Send mail..."));
使选择器对话框更清晰。
发布于 2014-03-27 05:04:31
如果你不使用createChooser()
,系统仍然会显示选择器对话框,除非用户已经表示他们已经决定使用哪个已安装的程序来完成给定的任务(或者他们已经撤销了之前的决定)。
如果使用createChooser()
,系统将始终显示该对话框,即使已经有明确的首选项也是如此。
所以,这两个都是绝对正确的,你必须决定在任何给定的情况下使用哪一个。您的使用里程可能有所不同,但基本上,如果您提供文本、图像、视频或类似的显示或编辑格式,您可能希望省略createChooser()
,这样用户已经喜欢的任何内容都可以立即开始。另一方面,如果你想分享一些你希望用户每次使用不同的安装程序来处理的事情(比如,发送电子邮件、Facebook、聊天等等),你可能想要使用createChooser()
让你的用户更容易地在运行中进行选择。
https://stackoverflow.com/questions/3804233
复制相似问题