从ApiDemos中学习Intent

无简介

在ApiDemos中,最开始在界面上面要显示的数据是通过getData方法来获取的,而在这个方法中有两句话 [sourcecode language=“java”]Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);[/sourcecode] 是关于Intent的。不同于我们平常使用 [sourcecode language=“java”]new Intent(MainActivity.this,XXX.class)[/sourcecode] 即指明了要跳转的activity对象。这种属于显式Intent,即指明了跳转对象的Intent。   还有一种Intent是隐式Intent,例如getData方法中的那两句。他的功能是跳转到一个未知路径,但是已知功能的Activity。下面放一个例子(原地址:http://blog.csdn.net/h3c4lenovo/article/details/7722259): 有三个Activity:【MainActivity.java】【BAcitvity.java】【CActivity.java】 假设这是一个照相应用MainActivity是程序入口,BActivity和CActivity都可以处理照相的内容。 在我们不会使用action的时候我们要使这个应用既可以使用BActivity照相,又能使用CActivity照相如何实现? 当然是在MainActivity中写两个Button, [sourcecode language=“java”]new Intent(MainActivity.this,BActivity.class); new Intent(MainActivity.this,CActivity.class);[/sourcecode] 通过两种不同的Intent来发起请求,这种情况我们就是使用了显式Intent,因为我们在代码中显式的指定了要跳转的位置。 然后我们来看隐式Intent是怎么做的: 首先我们新建两个Activity,命名为BActivity和CActivity,然后在Manifest文件中注册,注册好之后平常的状态应该是这样子的: [sourcecode language=“java”][/sourcecode] 然后我们对他进行修改,修改为: [sourcecode language=“java”][/sourcecode] 也就是给他们每个都添加一个intent-filter,其中action就是我们在代码中要使用的action值,通过这个值来找到这个activity,category也是必须的(我实验了下)。 然后我们在MainActivity中显示一个可以点击的按钮,点击发送: [sourcecode language=“java”]new Intent(“com.wudkj.VIEW”);startActivity(intent);[/sourcecode] 之后会弹出一个dialog让你选择   手机截屏 看上面显示的两个就是【BActivity】【CActivity】,点击之后分别可以进入到两个Activity中,这样就是隐式的Intent,只要符合条件的都可以被选择。 需要注意的是: [sourcecode language=“java”]//action中的name可以自定义,但是如果想要调用到这个Activity的话那么在new Intent的时候给Intent的action就需要是xxxxxxx//这个必须有[/sourcecode] 除了以上filter中的action以及category之外,还有data标签用来约束格式。 我的测试代码:http://pan.baidu.com/s/1mgtEVxQ

-------------本文结束  感谢您的阅读-------------
下次一定