Android中Intent的深入理解
Intent中文翻译过来是意图,但更合理的意思是消息传递器。
1.Intent在Android中到期是如何运行的呢?
作为 消息传递器,首先的具备 “装载”和 “卸载”消息的能力,在Android源代码中,Intent其实是用了普通消息包裹(Buddle)来装载数据。
代码来自android.content.Intent.class
public Intent putExtra(String name, CharSequence value) { if (mExtras == null) { mExtras = new Bundle(); //这是普通消息包裹 } mExtras.putCharSequence(name, value); return this;//这是一个不错的发现哦 } //添加额外数据,可以无限制是用 public Intent putExtra(String name, Bundle value) { if (mExtras == null) { mExtras = new Bundle(); } mExtras.putBundle(name, value); return this; } //这里是读取部分(卸载) public String getStringExtra(String name) { return mExtras == null ? null : mExtras.getString(name); }
这里只说明android的数据部分
2.Intent数据传递是需要方向的,方向是哪儿?
这里需要说明的是Intent的消息是广播出去的,所以说方向是整个系统。
3.Intent是如何找到指定的目标程序的呢?
可以说消息是发送出去了,但是为了找到适合的目标,需要进行一些列的检索,这些检索条件来自Action,Componet,setType,Catagory,PackageName
我们经常能看到,当我们发送一个Intent时,不一定只会有一个Activity或者BroadcastReceiver或者应用程序响应,所以这恰恰说明了Intent是一种被广播出去的消息。
4.总结
Intent 是一种消息传递器,课设置和获取消息
Intent 会被“广播给所有程序",进而筛选出适合条件的程序
Intent 是可以跨进程,跨应用传递的
Intent 携带有检索条件
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。