显式Intent和隐式Intent
2016-08-06 12:01
267 查看
显式Intent: 通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下。显式Intent明确指定了要激活的组件是哪个组件,一般用在同一个应用程序内部来实现功能。
例如:
隐式Intent: 隐式Intent是在显式Intent上的扩展。显式Intent虽然方便,但是只能用在同一个程序的内部,不能通过App1来调用App2中的Activity。如果App2的一个Activity使用了隐式Intent,则可以通过App1来启动App2的这个Activity。
具体操作如下:
首先在App2中的AndroidManifest中对相应的activity进行配置
然后在App1中启动App2中使用了隐式Intent的Activity
注意:如果一个Activity使用了隐式Intent,但是又不希望这个Activity被其他应用程序启动,这时在AndroidManifest中修改这个Activity的属性 : android:exported=”false” ,默认为true(允许导出)
使用环境:
显式意图效率高,系统直接精确定位要启用的组件,但耦合度也高,如果通过这种方式调用一些系统组件的话,容易因为版本更新,类名、包名、包结构变化等原因导致程序崩溃。
而隐式意图能够降低程序的耦合度,但由于每次意图执行的时候,系统都会搜索所有可用的intentfilter,来查看是否有匹配的内容,所以效率更低。所以具体的使用还要看具体的情况。
例如:
startActivity(new Intent(A.this , B.class));
隐式Intent: 隐式Intent是在显式Intent上的扩展。显式Intent虽然方便,但是只能用在同一个程序的内部,不能通过App1来调用App2中的Activity。如果App2的一个Activity使用了隐式Intent,则可以通过App1来启动App2的这个Activity。
具体操作如下:
首先在App2中的AndroidManifest中对相应的activity进行配置
<activity android:name=".App2Activity"> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <!--Android系统中默认的执行方式,按照普通Activity的执行方式执行--> <action android:name="package-name.intent.action.class-name"/> </intent-filter> </activity>
然后在App1中启动App2中使用了隐式Intent的Activity
startActivity(new Intent("package-name.intent.action.class-name"));
注意:如果一个Activity使用了隐式Intent,但是又不希望这个Activity被其他应用程序启动,这时在AndroidManifest中修改这个Activity的属性 : android:exported=”false” ,默认为true(允许导出)
<activity android:name=".App2Activity" android:exported="false" > <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <action android:name="package-name.intent.action.class-name"/> </intent-filter> </activity>
使用环境:
显式意图效率高,系统直接精确定位要启用的组件,但耦合度也高,如果通过这种方式调用一些系统组件的话,容易因为版本更新,类名、包名、包结构变化等原因导致程序崩溃。
而隐式意图能够降低程序的耦合度,但由于每次意图执行的时候,系统都会搜索所有可用的intentfilter,来查看是否有匹配的内容,所以效率更低。所以具体的使用还要看具体的情况。
相关文章推荐
- 3.显式和隐式Intent详解
- Android中的显式 Intent和隐式 Intent
- Activity详解 Intent显式跳转和隐式跳转
- Android:显式Intent和隐式Intent
- Android理解:显式和隐式Intent
- android学习记录(五)显式Intent与隐式Intent的功能与使用方法解析。
- Android Intent详细介绍及使用说明(显式、隐式和值传递)
- Android开发:显式/隐式Intent意图跳转Activity总结
- 显式intent和隐式intent区别
- Android Studio Intent使用(显式、隐式)
- Android开发:显式/隐式Intent意图跳转Activity总结
- intent 显式意图和隐式意图之Activity的激活方式
- 显式intent和隐式intent的区别
- Android学习之Intent显式,隐式
- 显式intent和隐式intent区别
- Activity详解 Intent显式跳转和隐式跳转
- Activity中Intent的含义以及显式意图与隐式意图区别
- Android显式意图、隐式意图、意图过滤器(intent-filter)、意图间传值
- Intent的显式与隐式
- 【Android】显式Intent与隐式Intent