Android-隱式Intent,android-intent

來源:互聯網
上載者:User

Android-隱式Intent,android-intent

  隱式Intent表示不具體明確要開啟的activity,利用隱式intent我們可以開啟其他應用。

  一個隱式intent的主要組成部分:

    1.action 要執行的操作。

      通常以intent類的常量表示。如:

      訪問查看某個URL  Intent.ACTION_VIEW

      發送郵件      Intent.ACTION_SEND

    2.data 要訪問的資料位置。 

      裝置以外的資料,如某個網頁URL

      指向某個檔案的URI

      指向ContentProvider中某條記錄的某個content URI

    3.type 操作涉及的資料類型

      如text/html或audio/mpeg3.

      如果一個intent包含某類資料的位置,那麼通常可以從中推測出資料的類型。

    4.category 可選類別

      類別用於描述如何使用某個activity

      android.intent.category.LAUNCHER:activity應該顯示在頂級應用程式啟動器中。

      android.intent.category.INFO:雖然activity向使用者顯示了包資訊,但它不應該顯示在啟動器中。

      android.intent.category.DEFAULT:DEFAULT類別必須明確的在intent過濾器中設定。如果說action告訴作業系統,activity能幹啥;

      那麼DEFAULT類別告訴作業系統activity願意幹啥。DEFAULT  類別實際隱含添加到了幾乎每一個隱式intent中。(唯一的例外是LAUNCHER類別)

  如同顯式intent,隱式intent也可以包含extra資訊。不過,作業系統在尋找合適的activity時,不會使用任何附加在隱式intent上的extra。

  注意,隱式intent的action和data也可以與顯式intent聯合使用。這相當於要求特定的activity去處理特定任務。

  由上舉例,如果想要一個用來查看某個網址的簡單隱式intent,需要

    Action:Intent.ACTION_VIEW

    URL:某個具體URL網址的uri資料

<intent-filter>    <action android:name="android.intent.action.VIEW"/>    <data android:scheme="http" android:host="www.baidu.com"/>    <category android:name="android.intent.category.DEFAULT"/></intent-filter>    

  此外補充一點,由於隱式intent並不會明確告知要開啟哪些activity,有可能裝置上就不會有合適的應用。這時候應用就會崩潰。為此我們在使用隱式intent之前,應該先進行安全檢查,判斷是否有合適的activity。

  

Intent i=new Intent();....PackageManager pm=getActivity().getPackageManager();List<ResolveInfo> activities=pm.queryIntentActivities(i,0);if(activities.size()>0){//safe}else{//no suitable activity for this intent}

  

  

 

     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.