分別用顯示意圖和隱式意圖來打開Acitivity

 

顯示意圖打開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路徑下有一首歌,才能正常播放

效果圖:

wKiom1LJHzHReHgkAAA9kic1k3U972.jpg

2.跳轉到發信息界面

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

效果圖:

wKiom1LJHz6S680zAAA7rt81zdE781.jpg

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章