Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> 深度剖析Android應用領域說明

深度剖析Android應用領域說明

編輯:高級開發

在每一個android應用程序都可能會在自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例,android是一個有數百兆大小的較大系統,各部分之間是有機聯系的,僅供大家學習思考。

Intent負責對應用中一次操作的動作、動作涉及數據 、附加數據進行描述,android則根據此Intent的描述,負責找到對應的組件,將 Intent傳遞給調用的組件,並完成組件的調用。因此,Intent在這裡起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現調用者與被調用者之間的解耦。

例如,在一個聯系人 維護的應用中,當我們在一個聯系人列表屏幕(假設對應的Activity為listActivity)上,點擊某個聯系人後,希望能夠跳出此聯系人的詳細信息屏幕(假設對應的Activity為detailActivity)

為了實現這個目的,listActivity需要構造一個 Intent,這個Intent用於告訴系統,我們要做“查看”動作,此動作對應的查看對象是“某聯系人”,然後調用startActivity (Intent intent),

將構造的Intent傳入,系統會根據此Intent中的描述,到ManiFest中找到滿足此Intent要求的Activity,系統會調用找到的 Activity,即為detailActivity,最終傳入Intent,detailActivity則會根據此Intent中的描述,執行相應的操作。

在Android參考文檔中,對Intent的定義是執行某操作的一個抽象描述(確實很抽象)。我們先來看看這裡的抽象描述,到底描述了什麼。首先, 是要執行的動作(action)的一個簡要描述,如VIEW_ACTION(查看)、EDIT_ACTION(修改)等,android為我們定義了一套標准動作:

  1. MAIN_ACTION
  2. VIEW_ACTION
  3. EDIT_ACTION
  4. PICK_ACTION
  5. GET_CONTENT_ACTION
  6. DIAL_ACTION
  7. CALL_ACTION
  8. SENDTO_ACTION
  9. ANSWER_ACTION
  10. INSERT_ACTION
  11. DELETE_ACTION
  12. RUN_ACTION
  13. LOGIN_ACTION
  14. CLEAR_CREDENTIALS_ACTION
  15. SYNC_ACTION
  16. PICK_ACTIVITY_ACTION
  17. WEB_SEARCH_ACTION

此外,我們還可以根據應用的需要,定義我們自己的動作,並可定義相應的android應用來處理我們的自定義動作,其次, 是執行動作要操作的數據(data)。android中采用指向數據的一個URI來表示,如在聯系人應用中,一個指向某聯系人的URI可能為:

  1. <manifest XMLns:android="http://schemas.android.com/apk/res/android"
  2. package="com.android.notepad
  3. ">
  4. <application android:icon="@drawable/app_notes"
  5. android:label="@string/app_name">
  6. <provider class=".NotePadProvider"
  7. android:authoritIEs="com.google.provider.NotePad
  8. " />
  9. <activity class=".NotesList" android:label="@string/title_notes_list">
  10. <intent-filter>
  11. <action android:value="android.intent.action.MAIN" />
  12. <category android:value="android.intent.category.LAUNCHER" />
  13. </intent-filter>
  14. <intent-filter>
  15. <action android:value="android.intent.action.VIEW" />
  16. <action android:value="android.intent.action.EDIT" />
  17. <action android:value="android.intent.action.PICK" />
  18. <category android:value="android.intent.category.DEFAULT" />
  19. <type android:value="vnd.android.cursor.dir/vnd.google.note
  20. " />

android應用,被執行動作的附加信息。例如 LAUNCHER_CATEGORY 表示Intent 的接受者應該在Launcher中作為頂級應用出現;而ALTERNATIVE_CATEGORY表示當前的Intent是一系列的可選動作中的一個,這些動作可以在同一塊數據上執行。

type(數據類型),顯式指定Intent的數據類型(MIME)。一般Intent的數據類型能夠根據數據本身進行判定,但是通過設置這個屬性,可以強制采用顯式指定的類型而不再進行推導。

component(組件),指定Intent的的目標組件的類名稱。通常 android會根據Intent 中包含的其它屬性的信息,比如action、data/type、category進行查找。最終找到一個與之匹配的目標組件。但是,如果 component這個屬性有指定的話,將直接使用它指定的組件,而不再執行上述查找過程。指定了這個屬性以後,Intent的其它所有屬性都是可選的。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved