Intent的隐式调用则是系统去检索信息然后去调用过程如下
<action><category>标签声明的活动的一些描述信息
我们在code中使用Intent intent = new intent(“一些描述信息”);//可以自定义
intent.addcategory("一些其它的描述信息");//我们可以自定义的信息
startActivity(initent);//这里会自动加上DEFAULT的category信息
XML中:
/*注册一个活动*/
<intent-filter>
/*描述活动的一些信息*/
<action android:name = "描述信息"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="一些自定义信息">
一个例子
我们现在有一个layout: 名字叫 activity_login 和一个 activity_register的两个活动
activity_login在Manifest中的<intent-filter>的描述如下
<intent-filter>
<action android:name="admin.example.initent.action.Login"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="admin.example.initent.category.test"/>
</intent-filter>
activity_register的描述如下
<intent-filter>
<action android:name="admin.example.initent.action.Login"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
java代码中:
Intent intent = new Intent("admin.example.intent.action.Login"/>
intent.addcategory("admin.example.initent.category.test"/>
startActivity(intent);
那么如何我们鼠标点击一些事件比如控件则会在转到activity_login这个活动的布局
因为虽然它们有同一个活动名称但是它们的一些描述信息不一样,activity_login除啦必须的一条DEFAULT category还有自己定义的一条,并且我们声明的intent刚好与之匹配所以就会启动这个组件,假如没有与之匹配的,那么就会程序出错或者停止,另外活动我认为应该使用官方的标准,因为别人不知道你所定义的标签呢。