显示意图打开SecondActivity:

Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);

 

隐式意图打开SecondActivity:

在用隐式意图的时候,我们要看看清单文件里是怎么配置的

<activity android:name=".SecondActivity" >
<intent-filter>
<action android:name="cn.cbd.action.SECONDACTIVITY1" />
<action android:name="cn.cbd.action.SECONDACTIVITY2" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MYCATEGORY" />
<data
android:host="www.baidu.com"  android:scheme="aaa" />
</intent-filter>
</activity>

Intent intent = new Intent();

intent.setAction("cn.cbd.action.SECONDACTIVITY2");
intent.setData(Uri.parse("aaa://www.baidu.com"));
//添加自定义类别 缺省类别不可缺

//intent.addCategory("android.intent.category.MYCATEGORY");
//用隐式意图来打开activity(startActivity(intent))时 :类别 当startActivity的时候会android系统会自动为intent设置一个缺省的类别 所以清单文件中一定要加上一个缺省类别
startActivity(intent);

 

在用隐式意图来打开activity时我们要特别要看看清单文件中是是否配置intetn-filter中的action(动作) category(类别) data(数据) 这几项我们都可以看成打开activity所需要的条件,也就是说谁要打开我这个activity(SecondAcitivity)就必须设置(一一对应),在上面的清单文件中,我们看出在intent-filter中对action,category和data进行了设置,既然在配置了,在隐式意图打开activity中就要对action,category和data设值。一一对应,缺一不可

 

还有一点值得我们注意的是,在执行startActivity(intent)或者startActivityForResult(intent, 0)时,android系统会为目的activity(SecondActivity)设置一个缺省的类别"<category android:name="android.intent.category.DEFAULT" />",在我们自定义类别的时候一边在清单文件中进行配置,一边要为intent对象添加类别:

intent.addCategory("android.intent.category.MYCATEGORY");

利用隐式意图打开activity在清单文件中一定要写缺省类别" <category android:name="android.intent.category.DEFAULT" />"

 

下面有两个小知识点

1.用android系统自带的播放音乐控件来播放一首音乐

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("
file:///mnt/sdcard/xing.mp3"), "audio/xing");
    startActivity(intent);

首先我们要在file:///mnt/sdcard路径下有一首歌,才能正常播放

效果图:

分别用显示意图和隐式意图来打开Acitivity_Activity

2.跳转到发信息界面

    Intent intent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:10086"));
    startActivity(intent);

效果图:

分别用显示意图和隐式意图来打开Acitivity_action_02