1. 程式人生 > >android IntentFilter 匹配規則 (適用於面試的問題解答)

android IntentFilter 匹配規則 (適用於面試的問題解答)

1)android IntentFilter的匹配規則
啟動activity分為兩種,顯示呼叫和隱式呼叫,顯示呼叫需要明確的指定被啟動物件的元件資訊,包括包名和類名,隱式呼叫則不需要明確指定元件資訊,原則上一個Intent不應該即是顯示又是隱式,如果二者共存的話以顯示呼叫為主,隱式呼叫需要Intent能夠匹配目標元件的IntentFilter中所設定的過濾資訊,如果不匹配則無法啟動目標Activity,intentFilter的過濾資訊有action category data

eg:

<activity
android:name="com.umeng.qq.tencent.AuthActivity"
android:launchMode="singleTask" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100424468" /> </intent-filter> </activity>
這裡我用友盟分享sdk中,在MainFest.xml中整合的一個activity為例:
(1)action的匹配規則:action是一個字串,action的匹配規則是Intent中的action必須能夠和過濾規則中action匹配,一個過濾規則中可以有多個action,只要intent中的action和過濾規則中任何一個匹配上,就是匹配成功,(區分大小寫)(2)category的匹配規則:category是一個字串,category必須和過濾規則中的其中一個category相同,intent中可以沒有category,但是一點有就必須能個和過濾規則中的某個action相同,如果沒有系統會在呼叫startActivity或者startActivityforResult的時候預設為Intent加上android.intent,category.DEFAULT為了我們能夠接收隱式呼叫,必須在IntentFilter中指定這個category,(3)data的匹配規則
data由兩部分組成,mimeType和URI,mimeType指媒體型別。可以表示圖片,文字等;URI的結構:scheme://host:port/path/pathprefixScheme: 表示URI的模式,(http file content)如果uri沒有指定scheme,表示整個uri無效host:URI的主機名 (www.baidu,com)如果host沒有指定,整個uri無效port:uri中的埠號。(80 8080 8088.。。)僅當uri中指定scheme和host引數時port才有意義path pathPattern: 這兩個引數表示路徑資訊,path表示完整路徑資訊,如果要為Intent指定完整的data。必須要呼叫setDataAndType, 不能setData和setType,這兩個方法彼此清除對方的值;

相關推薦

android IntentFilter 匹配規則 (適用面試的問題解答)

1)android IntentFilter的匹配規則啟動activity分為兩種,顯示呼叫和隱式呼叫,顯示呼叫需要明確的指定被啟動物件的元件資訊,包括包名和類名,隱式呼叫則不需要明確指定元件資訊,原則上一個Intent不應該即是顯示又是隱式,如果二者共存的話以顯示呼叫為主,

Android 四大元件之Activity的IntentFilter匹配規則小述

一、概述 本節主要介紹Activity的IntentFilter匹配規則,其是我們在隱式啟動一個Activity的過程中所用到的知識點,在這裡我就大概的介紹下,隱式啟動一個Activity需要我們的Intent能夠匹配待啟動Activity的IntentFilt

Java基礎常識(適用面試

八大資料型別的對應類裡有常量表示型別的最大值最小值等取值範圍區域性變數不能被宣告為 static 變數final 物件的引用不能改變,但是裡面的值可以改變類中的 final 方法可以被子類繼承,但是不能

知識梳理之互斥與同步(適用面試)

互斥是指對資源的排他性訪問,而同步是對程序執行的先後順序作出妥善的安排。 所謂競態,就是多個執行路徑有可能對同一資源進行操作時可能導致的資源資料紊亂的行為。把對共享的資源進行訪問的程式碼片段成為臨界區。 併發的來源:中斷處理路徑(中斷處理函式與被中斷的程序之間形成的併發)、

Android 訊息傳遞之Intent和IntentFilter匹配規則

1.Intent概述及作用 Intent 是一個訊息傳遞物件,您可以使用它從其他應用元件請求操作。 詳見官方文件 主要功能如下: 啟動Activity: 通過將 Intent 傳遞給 startActivity(),您可以啟動新的 Activity 例項。I

Android IntentFilter匹配規則

IntentFilter中的過濾資訊有action,category,data 匹配過濾列表,需要同時匹配過濾列表中的action、category、data資訊,否則匹配失敗 action的匹配規則 action是一個字串,系統預定義了一些action,同時我們也可以

Android學習筆記28——IntentFilter匹配規則

前言 在日常的Android開發中,我們會用到IntentFilter的匹配規則。IntentFilter的主要規則分為action、category、data三個類別,只有完美匹配才能成功啟動目標Activity;下面來分享一下這三種IntentFilter的

Android Studio 2.3.3 添加ksoap2的引用(拒絕網上其他的忽悠),也適用添加其他Jar的引用

ima mage androi img 適用於 網上 .com 2.3 ksoap2 Android Studio 2.3.3 添加ksoap2的引用(拒絕網上其他的忽悠),也適用於添加其他Jar的引用

Android簡單的編寫一個txt閱讀器(沒有處理字符編碼),適用新手學習

選項 tro 源碼 tin open 打開文件 package idt pac   本程序只是使用了一些基本的知識點編寫了一個比較簡單粗陋的txt文本閱讀器,效率不高,只適合新手練習。所以大神勿噴。   其實想到編寫這種程序源自本人之前喜歡看小說,而很多小說更新太慢,所以本

android-----模擬器載入自己編譯的核心(適用驅動練習)

1. 下載android 模擬器所用的核心原始碼, 代號為goldfish   2. 下載arm-linux交叉工具鏈 3. 編譯核心檔案 4. 讓android模擬器執行在剛編譯的核心上 5. 編譯自己的hello核心模組 6 將hello.ko載入到核心中 1

Android】一個適用大圖介面向下拖拽返回的效果

GitHub:DragBottom 適用於檢視大圖的下拉拖拽返回控制元件 共享元素適用於5.0+ 最初看到這個效果是在IOS系統的簡訊App中,後來在IOS微信、騰訊新聞中都發現了類似的效果。 網路上好像也沒有類似的程式碼,所以決定自己動手寫一個

Android Intent隱式啟動的匹配規則

隱式呼叫需要Intent能夠匹配目標元件的IntentFilter(<activity>標籤中的<intent-filter>)中所設定的過濾資訊   IntentFilter的過濾資訊包括action,category,data   只有

Android值Intent匹配規則挖掘(PMS獲取系統apk資訊過程)

Intent的查詢與匹配 App資訊表的構建 在Android開發中,Intent是極其重要的一個類,他是個個元件,程序之間通訊的紐帶,那麼系統是如何通過Intent來查詢對應的元件的呢? 在Android中,系統啟動之後就會註冊各種系統服務,關於註冊的這

Android屏適配-資原始檔夾命名與匹配規則

Android螢幕適配-資原始檔夾命名與匹配規則 說明:本文件目的為分析android工程res目錄下的資原始檔夾(drawable,values,layout等)在螢幕適配方面的限定與適配方法。 1、 Res下資料夾命名方式 1. 可用的命名屬性 在文件1中的表格“Table 2. Configurati

時間伺服器中,適用國內的 NTP 伺服器地址,可用於時間同步或 Android 加速 GPS 定位

NTP 是什麼?   NTP 是網路時間協議(Network Time Protocol),它用來同步網路裝置【如計算機、手機】的時間的協議。 NTP 實現什麼目的?   目的很簡單,就是為了提供準確時間。因為我們的手錶、裝置等,經常會時間跑著跑著就有誤差,或快或慢

Android-Handler機制,面試解答

本文轉載自: Handler 1、handler是什麼? 答:handler是更新UI介面的機制,也是訊息處理的機制,我們可以傳送訊息,也可以處理訊息 2、為什麼要有Handler? 答:Android在設計的時候,封裝了一套訊息建立、傳遞、處理機制,如果不

分布式架構真正適用大型互聯網項目的架構! dubbo+zookeeper+springmvc+mybatis

spring mvc+my batis kafka dubbo+zookeerper restful redis分布式緩存 平臺簡介 Jeesz是一個分布式的框架,提供項目模塊化、服務化、熱插拔的思想,高度封裝安全性的Java EE快速開發平臺。 Jeesz本身集成

VmWare 與 宿主主機通信 STEP BY STEP (適用剛開始學習的人)

aid 並且 cap 應該 行程 最大的 mtu win7 bringing 基本原理 在虛擬機中有三種通信方式,例如以下圖所看到的 1. Bridged(橋接模式) 在橋接模式下,VMware虛擬出來的操作系統就像是局域網中的一獨立的主機

Nginx學習筆記04URL匹配規則和實際路徑

oca 定義 wid val style 例如 top font 相同 1.1.1. URL匹配規則 匹配規則配置總結: location [=|~|~*|^~] /uri/ { } 優先級 匹配方式 描述 1最高 = 精確匹配。

SpringMVC路徑匹配規則AntPathMatcher(轉)

net false tar 但是 正則表達式 pattern true regexp 測試用例 SpringMVC的路徑匹配規則是依照Ant的來的. 實際上不只是SpringMVC,整個Spring框架的路徑解析都是按照Ant的風格來的. 在Spring中的具體實現,詳情參