美文网首页
显式意图与隐式意图

显式意图与隐式意图

作者: 海卓001 | 来源:发表于2019-07-15 12:01 被阅读0次

当在App内需要从某个Activity跳转到其他Activity,或是启动一个指定的service,一般写法是

Intent intent = new Intent(this,SecondActivity.class);

startActivity(intent);

这就是一个显式意图,指定了目标类。


隐式意图,举个例子,App的入口Activity在Manifest中是这样配置的

<activity android:name=".MainActivity">

    <intent-filter>

        <category android:name="android.intent.category.LAUNCHER" />

        <action android:name="android.intent.action.MAIN" />

    </intent-filter>

</activity>

这样就实现了解耦,Launcher在启动App时无需知道入口是哪个类,只要发送一个Action为”android.intent.action.MAIN”的隐式意图。 

调用系统拨号界面、打开相机、相册也是同样的原理,在开启系统相册选择图片时,发起者并不知道系统中的相册App的目标类是哪个,甚至要打开的App包名都不知道,通过隐式意图,设置Action为Intent.ACTION_PICK,系统就知道你要打开相册选择图片了。

有时在微信里选择“用浏览器打开”,会跳出多个App让用户选择,这里就是有多个Intent-Filter匹配上了Action和Category。

总结:从源码中的逻辑来看的话,判断一个intent是不是显式声明的点就是component和package,只要这两个有一个生效就不算是隐式声明的

相关文章

  • Android Activity

    activity之intentactivity的跳转通过intent,分显式意图和隐式意图显式意图:直接传入要跳转...

  • 显式意图与隐式意图

    当在App内需要从某个Activity跳转到其他Activity,或是启动一个指定的service,一般写法是 I...

  • Android显示意图和隐式意图

    显式意图和隐式意图的作用: 都是来进行页面的跳转的 显式意图和隐式意图的区别: (一般如果是开启自己应用程序的自定...

  • Android之Intent

    一、显式意图和隐式意图 1.1 显式 1.2 隐式 作用:可用于分享给与自身配置了同样的intent-filter...

  • Android 隐式意图

    一、隐式意图介绍 显式意图 隐式意图在intent过滤器中的匹配条件有:(1) action(2) categor...

  • android 隐式意图 intent.addCategor

    一、隐式意图介绍 显式意图我们前面已经提到,形如:Intent intent = new Intent();int...

  • intent-filter的匹配规则

    Intent有两种,一种是显式意图,一种是隐式意图。显式意图指定了具体要启动的Activity的类,所以当你打算用...

  • Activity小结

    1、Activity的跳转方式(1) 显式意图 (2) 隐式意图 2、Activity的传值方式(1) 使用Int...

  • Kotlin_01_安卓开发之Intent

    Intent就是意图的意思,分两种:显式的(Explicit intent)和隐式的(Implicit inten...

  • Android学习笔记之启动一个新的Activity

    显式启动Activity的三种方法 隐式启动Activity的方法 在配置文件中注册意图过滤器 ...

网友评论

      本文标题:显式意图与隐式意图

      本文链接:https://www.haomeiwen.com/subject/ybzgkctx.html