5、android應(yīng)用程序組件之一-activity和intent_第1頁
5、android應(yīng)用程序組件之一-activity和intent_第2頁
5、android應(yīng)用程序組件之一-activity和intent_第3頁
5、android應(yīng)用程序組件之一-activity和intent_第4頁
5、android應(yīng)用程序組件之一-activity和intent_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第五章 應(yīng)用程序組件(一)Activity和Intent本章目標(biāo)Activity 生命周期分析Intent 成員變量隱式調(diào)用和顯式調(diào)用Intent-Filter 過濾器及過濾規(guī)則Activity銷毀和數(shù)據(jù)自動存儲活動Activity構(gòu)成 Application 的基本組件一般帶有 UI 和消息處理過程Android 通過 Activity Stack 來管理,處于棧頂?shù)?Activity 是前臺活動的Activity 的生命握在 Android 系統(tǒng)Activity 間的切換是靠意圖 IntentActivity 生命周期注意:按Home和Back鍵和橫豎屏切換,Activity切換的狀態(tài)變化

2、Android四大組件和交互Activity(帶UI)ServiceContent ProviderBroadcast ReceiverIntentIntent意圖IntentIntent:解釋為“應(yīng)用程序發(fā)出的意圖”,是連接各組件的橋梁Intent 組成部分意圖 IntentAction:意圖的動作或謂語Data:意圖的內(nèi)容或賓語,使用 URI 來表示Type:意圖的作用數(shù)據(jù)范圍(類型),一般使用MIME來表示,如:IMAGE/JPGCategory:意圖發(fā)生的前提條件或約束Component:顯式 intent 的類名Extras:Intent 攜帶的額外數(shù)據(jù)Intent 的作用“喚醒”組

3、件 ActivitystartActivity(Intent)startActivityForResult(Intent intent, int requestCode)看示例代碼:Activity_Intent_Demo 項目:com.great.activity_intent.StartIntentForResult_Demo1com.great.activity_intent.ResultActivity1組件間數(shù)據(jù)交互使用 Intent.putExtras(Bundle) 攜帶數(shù)據(jù)使用步驟如下:1、新建一個bundle類,如:Bundlebundle=newBundle();2、向 B

4、undle 類中加入數(shù)據(jù),如:bundle.putString(“Name”, “張三”); 3、新建一個 intent 對象,并將該 Bundle 加入這個 intent 對象,如: Intentintent=newIntent();intent.setClass(TestBundle.this,Target.class);intent.putExtras(mBundle);看示例代碼:Activity_Intent_Demo 項目:com.great.activity_intent.Bundle_Demo1com.great.activity_intent.ResultActivity2I

5、ntent分類Intent 三種分類調(diào)用方式:顯式 Intent 和隱式 Intent定義:系統(tǒng)和自定義對象:單個和廣播顯式 Intent 調(diào)用/顯式指定類Intent intent = new Intent(); ponent/向框架發(fā)出顯式意圖startActivity(intent);看示例代碼:Activity_Intent_Demo 項目:com.great.activity_intent.Intent_Demo1 com.great.activity_intent.Intent_Demo1_Result1如果類名為自定義,則該Intent也可以稱為自定義Intent組件名 Comp

6、onentName顯式調(diào)用一般是內(nèi)部使用為了降低耦合,盡量使用隱式調(diào)用隱式 Intent/Intent-filters用來描述 Activity 或 Service 等組件能響應(yīng)什么樣的 Intent 動作 Action 測試一個 Intent 對象只能指定一個動作名稱,而一個過濾器可能列舉多個動作名稱。如果 Intent 對象或過濾器沒有指定任何動作就按以下的過濾規(guī)則執(zhí)行:如果過濾器 intent-filter 沒有指定任何動作,那么將阻塞所有的 Intent,因此所有的 Intent 都會測試失敗。沒有 Intent 能夠通過這個過濾器只要過濾器包含至少一個動作,一個沒有指定動作的 Int

7、ent 對象也不能通過這個測試類別 Category 測試匹配規(guī)則對于一個能夠通過類別匹配測試的 Intent,Intent 對象中的類別必須匹配過濾器中的類別。這個過濾器可以列舉其它的類別,但不能遺漏在這個 Intent 中的任何類別原則上一個沒有類別的 Intent 對象應(yīng)該總能夠通過匹配測試,而不管過濾器里有什么但有一個例外,Android 把所有傳給 startActivity() 的隱式意圖當(dāng)作他們包含至少一個類別:“ent.category.DEFAULT” 想要接收隱式意圖的活動必須在它們的 intent-filter 中包含“ent.category.DEFAULT”系統(tǒng)自帶的

8、種類categoryCATEGORY_DEFAULTCATEGORY_BROWSABLECATEGORY_TABCATEGORY_ALTERNATIVECATEGORY_SELECTED_ALTERNATIVECATEGORY_LAUNCHERCATEGORY_INFOCATEGORY_HOMECATEGORY_PREFERENCECATEGORY_TESTCATEGORY_CAR_DOCKCATEGORY_DESK_DOCKCATEGORY_LE_DESK_DOCKCATEGORY_HE_DESK_DOCKCATEGORY_CAR_MODECATEGORY_APP_MARKET數(shù)據(jù) Date

9、 測試-URI每個 元素可以指定一個 URI 和 一個 data type (MIME type) URI 有以下幾個屬性組成 : schema,host,port,path 格式: schema:/host:port/path 例如: 其中:schema 是:http:host 是: port 是:8080 path 是: /folder/subfolder/etc/abc.pdfhost 和 port 組成了URI authority,如果沒有指定 host,那么 port 將被忽略。要使一個 authority 有意義,必須要指定 scheme ;要使 path 有意義, scheme

10、和 authority(host : port) 必須指定。數(shù)據(jù) Date 匹配當(dāng)一個 Intent 對象中的 URI 被用來和一個過濾器中的 URI 比較時,比較的是 URI 的各個組成部分如果過濾器僅指定了一個 scheme,所有該 scheme 的URI 都能夠和這個過濾器相匹配如果過濾器指定了一個 scheme、主機(jī)名但沒有路徑部分,所有具有相同 scheme 和主機(jī)名的URI 都可以和這個過濾器相匹配,而不管它們的路徑如果過濾器指定了一個 scheme、主機(jī)名和路徑,只有具有相同 scheme、主機(jī)名和路徑的 URI 才可以和這個過濾器相匹配。當(dāng)然,一個過濾器中的路徑規(guī)格可以包含通配

11、符,這樣只需要部分匹配即可看示例代碼:Activity_Intent_Demo 項目:com.great.activity_intent.Intent_Demo1 com.great.activity_intent.Intent_Demo1_Result2數(shù)據(jù) Date 匹配規(guī)則一個既不包含 URI 也不包含數(shù)據(jù)類型的 Intent 對象僅在過濾器也同樣沒有指定任何 URI 和數(shù)據(jù)類型的情況下才能通過測試一個包含 URI 沒有數(shù)據(jù)類型的 Intent 對象僅在它的 URI 和一個同樣沒有指定數(shù)據(jù)類型的過濾器里的 URI 匹配時才能通過測試。這通常發(fā)生在類似于 mailto: 和 tel:這樣的 URI 上:它們并不引用實際數(shù)據(jù)一個包含數(shù)據(jù)類型但不包含 URI 的 Intent 對象僅在這個過濾器列舉了同樣的數(shù)據(jù)類型而且也沒有指定一個 URI 的情況下才能通過測試一個同時包含 URI 和數(shù)據(jù)類型(或者可從 URI 推斷出數(shù)據(jù)類型)的Intent 對象可以通過測試,如果它的類型和過濾器中列舉的類型相匹配的話。如果它的 URI 和這個過濾器中的一個 URI 相匹配或者它有一個內(nèi)容 content: 或者文件 file: URI,并且這個過濾器沒有指定一個URI,那么它也能通過測試Activity銷毀任務(wù)棧自動管理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論