上一节介绍了如何通过intent显式调用活动。本小节介绍通过intent隐式调用活动的方法。
本小节修改上一节的程序代码,将显式调用改为隐式调用。
1、修改AndroidManifest.xml文件,将ActivityTwo的注册代码由下图1修改为下图2。
图1
图2
说明:
1)上图2代码,在ActivityTwo的注册代码中增加了的说明代码。通过在中设定action和category,说明活动ActivityTwo能够响应的action和category。
2)第27行代码,指定活动ActivityTwo能够响应的action。
3)第28~29行代码,指定活动ActivityTwo能够响应的category。其中”android.intent.category.DEFAULT”为默认category,隐式调用intent必须设定。另一个category”com.example.test.MY_CATEGORY”为自定义的category。2、修改ActivityOne.java中按钮的点击方法代码,如下图3所示。
图3
说明:
1)第24行代码,注销之前的intent的重构代码;
2)第25行代码,使用intent另一个构造函数,指定启动可以响应”com.example.test.ACTION_START”这个action的活动。
3)第26行代码,给intent增加一个category,指定启动的活动需要符合的category。
4)此处没有增加”android.intent.category.DEFAULT”,是因为该category为默认,在调用startActivity()方法时,会自动加上。
5)如上面这种,不直接明确指定调用哪一个活动,而是指定调用符合action和category等信息的活动的方式,就是隐式调用intent。3、启动程序,显示效果如下图4、图5所示。
图4
说明:点击按钮”I’m button”,程序调转到图5界面
图5