Android进阶之路之intent第一部分

Intent intent=new Intent(this,SecondActivity.class);
其实这部操作等于
CompontentName comp=new ComponentName(this,ScondActivity.class);
Intent intent=new Intent();
intent.setCompontent(comp)
其实第一种也要实现CompontentName这一步的,如果是在匿名内部类是不能用this的,就得XxxActivity.this
当intent用于启动Activity时,intent是启动和被启动俩个Activity所共有的intent,
所以在第一个Activity设置了intent的属性后,在第二个Activity是可以用getIntent.get属性()去获取这个intent的属性值
而不是一个Activity对应一个intent

intent的属性
Intent的Action和Category属性是一个普通的字符串,其中Action代表该intent
要完成一个抽象“动作”,而Category(种类)则用于为Action添加额外附加类别信息。
通常他们两个属性结合使用
Action要完成的只是一个抽象的动作,这个动作具体由哪个组件来实现,组件也就是
Activity,Service等,Action这个字符串本身并不管,而是取决与Activity的
过滤器这个东西,这是隐式intent,我们在一个活动中设置了intent的Action和Categroy属性值(当然还有其他属性),然后系统就会去
分析这个intent,找到其他合适的活动去启动。而且这不仅可以启动我们程序内的活动,还可以启动其他程序内的活动,假如我们
要通过点击我们活动里的一个按钮,然后让它启动一个浏览器,我们不可能去写一个浏览器出来,我们就可以通过
这种隐式的方法去启动安卓内置的浏览器,是用intent的其他属性Data去设置的。
然后我们在活动设置了intent的属性之后,那么我们怎么让其他活动满足这个intent的属性,然后被启动呢?
这时我们就得在希望被启动的Activity所在的程序的AndroidManifest.xml里映射的我们要被启动的Activity中
假设我们要点击第一个活动中的一个按钮启动下面这个SecondActivity
我们就得在里面设置过滤器
android:name="com.ljs.intent.SecondActivity"
android:label="@string/app_name" >
//过滤器


//action和category的值可以随便取,但是最好还是android.intent.action.xxx
//这个MAIN和LAUNCHER是运行这个apk的首个显现的Activity,可以改成其他的。

            
        


最后action只能设置一个,category可以设置多个

你可能感兴趣的:(Android进阶之路之intent第一部分)