安卓自学笔记
第一章:基础知识
第五节:Intent的概念及应用
Intent分为隐式Intent和显式Intent
显式Intent:
通过这种方式创建的Intent属于显式的Intent,如图:

说它是显式Intent是因为这个Intent在第二个参数上直接指明了被启动的类
隐式Intent:
就是在创建Intent的时候并没有直接指明被启动的类,而是通过其它的方式去查找到要被启动的类
常用的方法有,给对应的Activity配置一个action name
1.在应用的配置文件AndroidManifest.xml中找到我们所要跳转到的A,并写上category和action两个属性,其中,action的name可以由开发者随便填,但最好的格式是:文件上方的“package包名.intent.action.开发者取的name”
如图:

2.将Intent的参数换成对应A的action name。
如图:

如果觉得这样在开发的时候会不方便
1.可以在被启动的A对应的java文件里面加入一个静态的常量ACTION,如图:

2.引用的时候这样写,一定程度上会让开发更方便,从而不用去记忆太长的东西,如图:

隐式Intent这种方式还有一个优势就是能跨应用启动页面
再创建一个应用app1,在app1里加入一个按钮用来启动最初应用的A,如图

运行效果:


如果某个A不想要能被跨应用启动,则这样配置,将exported设为false,如图:

运行效果如图:

若有不止一个A拥有同一个action name的话,当点击跳转时,会有提示框让你选择要跳转到哪个A,如图:

另一个隐式Intent的使用方法是配置A的data属性:
在上面所用的程序中,给NewActivity1设置一个data scheme属性,当然还可以设定不同的data属性类型如图

在另一个应用之中,给Intent补全第二个参数,其中app是上图所示所设定的协议名,双斜杠后面跟着的是参数,如图

运行之后,就不会再有提示框来问你要选择哪一个A了,因为这种方法补全的第二个参数已经指定了唯一的一个A了。
浙公网安备 33010602011771号