編輯:關於Android編程
1、要把一個Activity或者Service注冊為一個可以接受隱式intent的處理程序,需要在它的manifest節點中添加一個intent-filter標簽。
2、intent-filter標簽包含的屬性:
intent-filter包含action,category,data三大屬性。在隱式intent發布時,這些屬性將與這個intent進行匹配,匹配的結果將決定那個(些)處理程序將會被調用。
2.1 action
每個Intent Filter必須要包含至少一個action標簽。Action的android:name屬性指定需要處理的動作名稱。這個名稱應該是唯一的描述性字符串,推薦的做法是借鑒java包名約定來命名Action。
2.2 category(類別)
category使用android:name屬性來指定在什麼情況下為intent提供服務。每個Intent Filter可以有多個category標簽。既可以指定自己的category也可以使用Android提供的標准值。
這些標准值有:
LAUNCHER:監聽這個Intent Filter的Activity會出現在應用程序的啟動器中。
HOME:監聽這個Intent Filter的處理程序可以作為本地屏幕的可選項。
BROWSABLE:監聽這個Intent Filter的處理程序將可以處理一個來自浏覽器內部的動作。
ALTERNATIVE:為特定動作提供默認的操作。
SELECTED_ALTERNATIVE:
2.3 data
隱式intent用於匹配intent-filter的數據類型,這些數據類型有:
android:host、android:mimetype、android:path、android:port、android:scheme
例如我們在點擊一段下載鏈接時,到底是觸發浏覽器還是觸發迅雷下載軟件,這個就是由data標簽來實現的。
3、intent-filter的匹配過程
在使用隱式intent來啟動可能的處理程序時,這個intent將會和所有已經在Android操作系統注冊過的intent-filter有一個匹配過程。這個匹配過程將會找出符合要求的最合適的處理程序來處理這個隱式intent。
step1:隱式intent的action name必須與intent-filter的action name相同,否則匹配失敗
step2:隱式intent的category只能是intent-filter的子集,否則匹配失敗
step3:data裡面的數據必須逐項完全相同,否則匹配失敗
step4:如果有多個處理程序的intent-filter同時匹配這個隱式intent,
在ViewPager中我們經常會看到在每個顯示的頁面上有標題顯示,那麼我們如何來通過代碼來添加呢?Google在給我們提供的v4包中提供了兩個控件PagerTabStri
本文在《7種形式的Android Dialog使用實例》在這篇文章的基礎進行學習,具體內容如下1.概述 android原生控件向來以丑著稱(新推出的Material D
目標效果: 程序運行,顯示圖一的幾個按鈕,點擊按鈕分別顯示圖二到圖六的對話框,點擊對話框的某一項或者按鈕,也會顯示相應的吐司輸出。1.activity_
一.引言本篇博客以九宮格手勢解鎖View為例,來說明自定義View如何根據需求處理用戶的手勢操作。雖然九宮格手勢解鎖自定義View網上資料有很多,實現原理大同小異,但這裡
1.android 的UI線程阻超過5秒就會引發ANR(Applicat