Intent是activity之间的信使
分为显式Intent和隐式Intent
显式Intent
Intent intent = new Intent(Mainactivity.this,xxxx.class) //xxxx是另外一个activaty的名称
startActivity(intent);
隐式Intent:
Intent intent = new Intent();
intent.setAction(Intent.xxxx);//还可以指定别的Intent属性
startActivity(intent);
ACTION:
常用的Action如下所示:
ACTION_CALL activity 启动一个电话.
ACTION_EDIT activity 显示用户编辑的数据.
ACTION_MAIN activity 作为Task中第一个Activity启动
ACTION_SYNC activity 同步手机与数据服务器上的数据.
ACTION_BATTERY_LOW broadcast receiver 电池电量过低警告.
ACTION_HEADSET_PLUG broadcast receiver 插拔耳机警告
ACTION_SCREEN_ON broadcast receiver 屏幕变亮警告.
ACTION_TIMEZONE_CHANGED broadcast receiver 改变时区警告.
两条原则:
一条元素至少应该包含一个,否则任何Intent请求都不能和该匹配。
如果Intent请求的Action和中个任意一条匹配,那么该Intent就可以激活该activity(前提是除了action的其它项也要通过)。
两条注意:
如果Intent请求或中没有说明具体的Action类型,那么会出现下面两种情况。如果中没有包含任何Action类型,那么无论什么Intent请求都无法和这条匹配。 反之,如果Intent请求中没有设定Action类型,那么只要中包含有Action类型,这个Intent请求就将顺利地通过的行为测试。
CAREGORY:
即这个activity在哪个环境中才能被激活。不属于这个环境的,不能被激活。
常用的Category属性如下所示:
CATEGORY_DEFAULT:Android系统中默认的执行方式,按照普通Activity的执行方式执行。表示所有intent都可以激活它
CATEGORY_HOME:设置该组件为Home Activity。
CATEGORY_PREFERENCE:设置该组件为Preference。
CATEGORY_LAUNCHER:设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN配合使用。
CATEGORY_BROWSABLE:设置该组件可以使用浏览器启动。表示该activity只能用来浏览网页。
CATEGORY_GADGET:设置该组件可以内嵌到另外的Activity中。
注意:如果该activity想要通过隐式intent方式激活,那么不能没有任何category设置,至少包含一个android.intent.category.DEFAULT