Android编程权威指南(第二版)第十五章-隐式intent
在Android系统中,可利用隐式intent启动其他应用的activity。在显式intent中,我们指定要启动的activity类,操作系统会负责启动它。在隐式intent中,我们只要描述要完成的任务,操作系统就会找到合适的应用,并在其中启动相应的activity。
比如,当我们应用中提供引导拨打电话,发送短信等功能时,用户需要在应用中调用自己熟悉或喜爱的其他应用时,那么使用隐式intent。
使用隐式intent,只需告诉操作系统我们想要做什么,操作系统就会去启动能够胜任工作任务的activity。如果找到多个符合的activity,用户会看到一个可选应用列表,然后就看用户如何选择了。
下面是一个隐式intent的主要组成部分,可以用来定义我们的工作任务。
(1) 要执行的操作
通常以Intent类中的常量来表示。例如,要访问查看某个URL,可以使用Intent.ACTION_VIEW;要发送邮件,可以使用Intent.ACTION_SEND。
(2) 要访问数据的位置
这可能是设备以外的资源,如某个网页的URL,也可能是指向某个文件的URI,或者是指向ContentProvider中某条记录的某个内容URI(content URI)。
(3) 操作涉及的数据类型
这指的是MIME形式的数据类型,如text/html或audio/mpeg3。如果一个intent包含数据位置,那么通常可以从中推测出数据的类型。
(4) 可选类别
如果操作用于描述具体要做什么,那么类别通常用来描述我们是何时、 何地或者如何使用某个activity的。例如, Android的android.intent.category.LAUNCHER类别表明, activity应该显示在顶级应用启动器中;而android.intent.category.INFO类别表明,虽然activity向用户显示了包信息,但它不应该显示在启动器中。
点击事件触发 带有选择器的隐式Intent
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_SEND);//隐式Intent的类型
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT,“this is text content”
i.putExtra(Intent.EXTRA_SUBJECT,“this is subject”);
i = Intent.createChooser(i, "this is string you want to show");
startActivity(i);
}

浙公网安备 33010602011771号