码迷,mamicode.com
首页 > 移动开发 > 详细

Android中Intent的深入理解

时间:2014-10-30 15:37:20      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:android   style   io   os   ar   sp   数据   on   cti   

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 携带有检索条件









Android中Intent的深入理解

标签:android   style   io   os   ar   sp   数据   on   cti   

原文地址:http://my.oschina.net/ososchina/blog/338842

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!