從0系統學Android-2.4隱式Intent

本系列文章,參考《第一行代碼》,做爲我的筆記java

更多內容:更多精品文章分類android

聲明

使用隱式 Intent

相對於顯示 Intent ,隱式 Intent 比較含蓄。這種方式不明確指出咱們想要啓動哪個 Activity。而是定義了一系列更爲抽象的 actioncategory 等信息。而後交給系統去分析這個 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

更多分享,公衆號
相關文章
相關標籤/搜索