Intent大致分為兩種:顯式Intent和隱式Intent。
一、顯示Intent為從一個activity跳轉到另一個activity。如:
Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);
二、隱式Intent它不明確指出我們想要啟動哪一個活動,而是指定了一系列更為抽象的action和category等信息來過濾,找到符合條件的Activity。
1.setAction():表明我們想要啟動能夠響應設置的這個action的活動,並在清單文件AndroidManifest.xml中設置action屬性。如:(打開一個撥號界面)
Intent intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); startActivity(intent); /** * 以上代碼也可以直接寫為: * Intent intent = new Intent(Intent.ACTION_DIAL); * startActivity(intent); */
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.DIAL"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
結果:打開一個撥號界面

2.setData():通常是URI格式定義的操作數據。(只要設置setAction ()就要在清單文件AndroidManifest.xml中設置action屬性)例如:tel:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent); /** * 以上代碼也可以直接寫為: * Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:10086")); * startActivity(intent); */
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.DIAL"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
結果如圖:
3.setType():指定數據類型,選出適合的應用來。(只要設置setAction ()就要在清單文件AndroidManifest.xml中設置action屬性)例如:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("text/plain"); startActivity(intent); /** * 以上代碼也可以直接寫為: * Intent intent = new Intent(Intent.ACTION_SEND); * intent.setType("text/plain"); * startActivity(intent); */
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
結果如圖:
4.putExtra():把要傳遞的數據暫存在Intent中,啟動了另一個活動后,只需要把這些數據再從Intent中取出就可以了。
文章來自個人博客:Intent 中重要方法:setAction()、setData()、setType()、putExtra()