Intent

来源:互联网 发布:r统计软件说明 编辑:程序博客网 时间:2024/06/05 08:55
组件通讯
Intent协助应用间的交互和通讯
Intent可激活Android应用的三种类型的核心组件:Activity,Service,   BroadcastReceiver
Intent可划分为显示Intent式Intent
显式Intent
显示Inent启动Activity
创建一个Intent
指定当前的应用程序上下文以及要启动的Activity
把创建好的这个Intent作为参数传递给startActivity方法
隐式Intent
在不明确设置激活对象的前提下寻找最匹配的组件
Android系统会根据隐式Intent的动作(Action),类别(category),数据(URI和数据类型)找到最合适的组件来处理这个意图
Intent解析机制通过查找AndroidManifest.xml中的IntentFilter,最终找到匹配的Intent。在这个解析过程中,Android是通过Intent的action,type,category这三个属性来进行判断的。
隐式Intent启动Activity的实现步骤
注册Intent过滤器
创建Intent,设置动作,类别,数据
把创建好的这个Intent作为参数传递给startActivity方法


显式启动与隐式启动的区别:
显示Intent
优点:不需要进行寻址过滤,使用简单,速度快,定位准确,不受干扰。
缺点:只要在一个工程内部的应用间进行跳转,扩展性不强,系统间耦合紧。
显示设置了class会自动屏蔽Implicit形式的Intent
隐式Intent
优点:不需要指明需要启动哪一个Activity,而由Andriod系统来决定,有利于使用第三方组件
隐式Intent可以调用另一个工程里的Activity
隐式启动代码

AndroidManifest.xml文件中

<span style="font-size:18px;"><intent-filter>      <action android:name="android.intent.action.MAIN" />      <category android:name="android.intent.category.LAUNCHER" /></intent-filter></span>

<span style="font-size:18px;"><intent-filter><action android:name="com.example.android.db.homework2.MainActivity"/>                        <category android:name="android.intent.category.DEFAULT" /> </intent-filter></span>

<span style="font-size:18px;">// 隐式Intent练习Intent intent = new Intent();intent.setAction("com.example.android.db.homework2.MainActivity");startActivity(intent);</span>


第一段代码:启动的首页
第二段代码:是要启动的页面
第三段代码:是在启动的Activity中要写的隐式Intent代码



1 0
原创粉丝点击