putExtra() 和 setData() 有什么区别?我已经阅读了 android 文档,但没有太大帮助。
还有之前的一个问题Intent.setData 与 Intent.putExtra https://stackoverflow.com/questions/18794504/intent-setdata-vs-intent-putextra但目前还不清楚。
提前致谢。
设置数据()
设置此意图正在操作的数据。此方法会自动清除先前由 setType(String) 或 setTypeAndNormalize(String) 设置的任何类型。
Note:与正式的 RFC 不同,Android 框架中的方案匹配是区分大小写的。因此,您应该始终使用小写方案编写 Uri,或者使用 normalizeScheme() 或 setDataAndNormalize(Uri) 以确保方案转换为小写。
参数
data:此意图现在针对的数据的 Uri。
Intent 用于向 Android 系统发出信号,表明某个事件已发生。意图通常描述应执行的操作并提供应执行此类操作的数据。例如,您的应用程序可以通过浏览器组件针对某个 URL 的意图启动。下面的例子证明了这一点。
String url = "http://www.google.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
但是Android系统如何识别可以对某种意图做出反应的组件呢?
为此,使用了意图过滤器的概念。意图过滤器指定活动、服务或广播接收器可以响应的意图类型。因此它声明了组件的功能。
Android 组件在 AndroidManifest.xml 中静态注册意图过滤器,或者在广播接收器的情况下也通过代码动态注册意图过滤器。意图过滤器由其类别、操作和数据过滤器定义。它还可以包含其他元数据。
如果将 Intent 发送到 Android 系统,Android 平台将使用 Intent 对象中包含的数据运行接收者确定。在此,它确定为意图数据注册的组件。如果多个组件已注册相同的意图过滤器,则用户可以决定应启动哪个组件。
putExtra()
将扩展数据添加到意图中。
参数:
name:额外数据的名称。
value:字符串数组数据值。
返回相同的 Intent 对象,用于将多个调用链接到单个语句中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)