本系列文章,參考《第一行代碼》,做爲我的筆記java
更多內容:更多精品文章分類android
相對於顯示 Intent ,隱式 Intent 比較含蓄。這種方式不明確指出咱們想要啓動哪個 Activity。而是定義了一系列更爲抽象的 action
和 category
等信息。而後交給系統去分析這個 Intent ,並幫咱們找出這個合適Activity。ide
合適的 Activity 就是指的能夠響應這個隱式 Intent 的 Activity。函數
經過在 <activity>
標籤下配置 <intent-filter>
的內容,能夠指定當前 Activity 可以響應的 action 和 category。在 AndroidManifest.xml
中添加:this
bt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Toast.makeText(MainActivity.this,"顯示內容",Toast.LENGTH_SHORT).show();
Intent intent = new Intent("com.syd.start");
startActivity(intent);
}
});
每一個 Intent 中只能指定一個 action,可是能夠指定多個 categoryspa
這個時候從新運行程序,點擊按鈕,就可使用隱式 Intent 來啓動 SecondActivity
了。code
這裏使用了 Intent
的另一個構造函數直接將 action
的字符傳了過去,代表咱們想要啓動的 Activity 須要可以響應 com.syd.start
這個 Action。前面咱們已經在 AndroidManifest.xml
中代表了 SecondActivity
能夠響應這種 Action 了。orm
在 MainActivity
中將顯示啓動該爲隱式啓動cdn
在 <action>
標籤中咱們指明瞭當前 Activity 能夠響應 com.example.activitytest.ACTION_START
這個 action。<category>
標籤包含了一些附加信息,更加精確的指明瞭當前 Activity 可以響應的 Intent 中還可能帶有的category
只是可能帶有,若是 Intent 中帶有 category
則要啓動的 Activity 的註冊中必須有這個 category
才能夠。若是 Intent 中沒有帶有 category
也是能夠的。不過 Activity 在聲明的時候只要聲明瞭 action
就要帶一個 <category android:name = "android.intent.category.DEFAULT"
不然使用 action 啓動的時候會報錯,這是由於用 startActivity()
方法的時候會自動將這個 category
添加到 Intent 中去。xml