Adnroid學習筆記 Intent與的使用

2021-06-19 02:06:10 字數 3543 閱讀 7748

android中的intent使用

intent在android中主要用於啟動其他元件,它的本意可以理解為「意圖」。既可以用它來啟動activity、service、broadcastreceiver,同時還能在其中攜帶各種資料,實現各元件的交流。

使用intnet啟動系統元件的方法

元件型別

啟動方法

activity

startactivity(intent intent)

startactivityforresult(intent intent)

service

componentname startservice(intnet intent)

boolean bindservice(intent service, serviceconnection conn, int flags)

broadcastreceiver

sendbroadcast(intent intent)

sendbroadcast(intent intent, string receiverpermission)

sendorderedbroadcast (intent intent, string receiverpermission)

sendorderedbroadcast (intent intent, string receiverpermission, broadcastreceiver resultreceiver, handler scheduler, int initialcode, string initialdata, bundle initialextras)

sendstickybroadcast (intent intent)

sendstickyorderedbroadcast (intent intent, broadcastreceiver resultreceiver, handler scheduler, int initialcode, string initialdata, bundle initialextras)

intent屬性

主要有component、action、category、type、data、extra、flags

1.     

component 啟動元件的名字

構造器:

componentname(string pkg, string cls);

建立pkg所在包下的cls類所對應的元件;

componentname(context pkg, string cls);

建立pkg所對應的包下的cls類所對應的元件;

componentname(context pkg, class> cls);

建立pkg所對應的包下的cls類所對應的元件;

componentname(parcel in)

componentname的建立需要指定包名和類名,以確定唯一的類,intent呼叫setcomponent(componentnamename)使應用程式可以啟動指定的元件。一般使用intent intent = new intent(context packagecontext, class>cls)來指定啟動元件更為方便。

intent中還可以使用以下方法新增元件名:

setclass(context packagecontext,class> cls)

setclassname(context packagecontext, stringclassname)

setclassname(string packagename, stringclassname)

顯示意圖:指定了元件包名和類名的intent

隱式意圖:有時需要執行乙個任務(比如開啟乙個網頁),並不需要詳細的指定乙個元件,可以通過對意圖新增一些屬性來隱式呼叫,系統會根據各個元件的intent-filter屬性來選擇啟動那些元件。(注意:如果沒有滿足條件的元件可以啟動,程式是會崩潰的,所以要先檢查是否有可以啟動的元件)。

intent可以通過新增action、category、data、type屬性宣告乙個隱式意圖來執行乙個抽象的動作,系統會根據元件配置的對應屬性來選擇啟動哪些元件。

2.     

intent可以通過新增action、category、data、type屬性宣告乙個隱式意圖來執行乙個抽象的動作,系統會根據元件配置的對應屬性來選擇啟動哪些元件。

intent-filter可包含:

0~n個

0~n個

0~1個

可選屬性:

minitype:  宣告所能匹配的intent的type屬性

scheme

: 宣告匹配的itent的data屬性的scheme部分

host:  宣告匹配的itent的data屬性的host部分

port:  宣告匹配的itent的data屬性的port部分

path:  宣告匹配的itent的data屬性的path部分

pathprefix:  宣告匹配的itent的data屬性的path字首

pathpattern:  宣告匹配的itent的data屬性的path字串模板

3.     

action  宣告intent所要完成的抽象動作

intent.setaction(string action);

與的匹配

4.     

category用於為action增加額外的附加類別資訊

intent. addcategory (string category);

與的匹配1個

intent

只能包含乙個

action,

但可以包含多個

category

,action

通常與category

結合使用。

5.     

data 通常用於向action屬性提供操作的資料,該屬性接受乙個uri物件

intent.setdata (uri data);

與的匹配

uri為一種特定形式的字串,滿足如下格式

type 用於指定該data所指定uri對應的mime型別,可以為任意的mime型別,只要符合adc/xyz格式的字串即可。

data屬性與type屬性相互覆蓋,具體情況如下:

intent啟動其他元件時會根據intent的屬性列出所有滿足條件的intent-filter

7.     

extra 為乙個鍵值對的bundle物件,用於不同activity之間進行資料交換。

8.     

flag 為該 intent新增一些額外的控制旗標

intnt.addflags();

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...

筆記 spring cloud 學習筆記

1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...