setData,传入的是Uri,用于数据的过滤。setData可以被系统用来寻找匹配目标组件。putExtra 只是用来设定各种不同类型的附加数据。不被系统用来寻找匹配目标组件。
两种类别:显式和隐式
1、显式Intent指定了可处理该Intent的目标组件,一般用于应用程序内部的消息传递。比如,启动下级的服务或者同级的Activity。
Intent intent = new Intent(this, XXX.class);
StartActivity(intent);
2、隐式Intent没有指定可处理该Intent的目标组件,一般用于和外部应用程序之间的消息传递。
Uri Phoneuri = Uri.parse("tel:" + "10010");
Intent intent = new Intent(Intent.ACTION_DIAL, Phoneuri);
startActivity(intent)
//Intent intent = new Intent();
// intent.setAction("Android.intent.action.CALL");
// intent.setData(Uri.parse("tel:"+ "10010"));
// startActivity(intent);没有定义Intent filter的组件,只能处理显式的Intent。
Intent filter
如果一个组件的Intent filter中的<data>元素只是指定了Data type,而没有 指定scheme,则该组件默认是支持scheme为content:或者file:类型的URL 的。
联系客服