Intent

Intent 媒体中介,解决android应用各项组件的通讯,Intent具有激活组件和携带数据的功能;

有显式意图和隐式意图之分:

显式意图,明确使用class指向一个确切的对象,隐式意图,不明确指向对象,而在清单文件中使用意图过滤器中的多种属性来确实需要到的目的地;可以将多个Acitity的IntentFilter设置为相同的ACTION,体现隐式模糊匹配的特点,设置多个IntentFilter的优先级别,则可变为强制优先使用,不推荐;配置了Action的必须加上category的配置,先使用默认值;Action+Category可以理解为就是在Action基础上新增一个搜索条件,只要能匹配一个Category就能访问;intent过滤配置中,设置多条category的起码要能匹配一条,没有任何一条匹配,则出异常;

两者的使用区别:

显式意图一般在应用的内部使用,因为应用内部已经知道了组件的名称,直接调用就可以了。当一个应用要激活另一个应用的Activity时,只能使用隐式意图,根据Activity配置的意图过滤器建一个意图,让意图中的各项参数的值都跟过滤器匹配,这样可以激活其他应用中的Activity。所以,隐式意图是应用与应用之间使用的;

Intent+Uri启动浏览器访问指定网址,启动音乐播放器播放指定音乐,安装、卸载指定应用、拨号发短信等等;

Activity间的数据传递:

可以传递String、int、数组、String集合、序列化对象、Parcelable、Bundle多数据捆绑包;

也可返回数据startAcitivityForResult(intent,100),第二个参数为请求的标记,必须>=0。用于区分本Activity对应多个其他Activity的回调传值,一定要使用setResult的方法来返回之前Activity,才会进入之前Activity的OnActivityResult方法,this.setResult(Activity.RESULT_OK, intent);//Result_OK 表示结果响应成功,由第二个Activity返回本activity时,用于接收数据时的回调方法onActivityResult(int requestCode, int resultCode, Intent data),requestCode 请求时发送的编码     resultCode 返回的状态编码    intent 返回数据。




你可能感兴趣的:(Android,基础,android)