自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android Activity進(jìn)行全解析

移動開發(fā) Android
如果一個(gè)用戶長時(shí)間沒有使用一個(gè)任務(wù),系統(tǒng)會請空這個(gè)任務(wù)中根以外的Android Activity,當(dāng)用戶再次使用此程序的時(shí)候。

Android Activity集成開發(fā)環(huán)境包括許多新的和改進(jìn)的用于提高工作效率的功能。IDE 還進(jìn)行了重新設(shè)計(jì),從而向開發(fā)人員提供對.NET Framework 組件的直接訪問,大大減輕了開發(fā)人員的工作壓力。

只有最開始的activity顯示出來。這樣做的原因是:當(dāng)用戶很長時(shí)間以后回來的時(shí)候,它傾向于重新開始工作,而不是接著上次的工作做。當(dāng)然,這是默認(rèn)的模式。activity有一些屬性可以控制請空的動作。當(dāng)任務(wù)的根acitvity的此屬性設(shè)置為 "true" 的時(shí)候。

無論用戶何時(shí)返回應(yīng)用程序,程序都會請空隊(duì)列。從另一個(gè)角度說,這個(gè)屬性和alwaysRetainTaskState屬性完全相反。即使離開一會,用戶也會被導(dǎo)航到初始狀態(tài)。這個(gè)屬性有些像clearTaskOnLaunch, 但是它是針對某個(gè)activity而非整個(gè)任務(wù)的。它可以清除任何Android Activity,當(dāng)然包括任務(wù)堆棧的根activity。

當(dāng)此屬性設(shè)置為"true" 的時(shí)候,此activity只在用戶當(dāng)前會話中顯示,當(dāng)用戶離開再回來的時(shí)候,此activity已經(jīng)被清除。有另外一種方式來請空任務(wù)。如果intent含有 FLAG_ACTIVITY_CLEAR_TOP 節(jié)點(diǎn),并且目標(biāo)任務(wù)已經(jīng)有一個(gè)指定activity的實(shí)例來處理這個(gè)intent了。

那么這個(gè)activity頂上的節(jié)點(diǎn)將被全部清除,這個(gè)activity的實(shí)例就位于任務(wù)堆棧的頂部了。如果指定的activity設(shè)置為"standard",。它將從任務(wù)中移除,建立一個(gè)新的實(shí)例來響應(yīng)此intent。因?yàn)?font size="+0">啟動模式設(shè)置為 "standard"的時(shí)候,會建立一個(gè)新的實(shí)例來響應(yīng)intent。

FLAG_ACTIVITY_CLEAR_TOP 經(jīng)常和FLAG_ACTIVITY_NEW_TASK.一起使用。當(dāng)他們一起使用的時(shí)候,可以定位到另外一個(gè)任務(wù)中已經(jīng)存在的activity上,使得這個(gè)acitivity響應(yīng)intent。

怎樣把一個(gè)activity設(shè)置為整個(gè)任務(wù)的入口呢?可以設(shè)置一個(gè)intent filter: "android.intent.action.MAIN" 作為默認(rèn)動作;"android.intent.category.LAUNCHER" 作為類別。(是 Intent Filters 章節(jié)的例子)。這種類型的的filter對應(yīng)的Android Activity的icon和label顯示在任務(wù)中,這樣用戶可以方便的回到任務(wù)

第二個(gè)能力尤其重要,用戶必須可以離開任務(wù),并且重返任務(wù)。因此, "singleTask" 和 "singleInstance"這2個(gè)啟動模式必須用在含有 MAIN 和 LAUNCHER filter的activity中。想象一下,如果不加這2個(gè)filter會怎樣?一個(gè)intent請求"singleTask" 的activity,初始化了一個(gè)新的任務(wù),用戶操作了一會這個(gè)任務(wù)。

然后用戶點(diǎn)擊“HOME”鍵?,F(xiàn)在這個(gè)任務(wù)就被HOME窗體覆蓋了。但是因?yàn)檫@個(gè)任務(wù)不能在application launcher(注:類似于進(jìn)程管理器)里面看到,因此用戶沒有辦法打開它

 CTIVITY_NEW_TASK 標(biāo)志也有同樣的問題。這個(gè)標(biāo)志將使得activity在一個(gè)新的任務(wù)執(zhí)行,當(dāng)用戶點(diǎn)擊HOME 鍵離開任務(wù)的時(shí)候,必須能讓用戶回到這個(gè)任務(wù)。其他的一些機(jī)制(如通知管理器)經(jīng)常在外部的任務(wù)開啟某個(gè)activity,而不是activity所在的任務(wù)本身,因此必須在intent觸發(fā) startActivity()方法時(shí)使用FLAG_ACTIVITY_NEW_TASK 標(biāo)記。

如果你有一個(gè)可以使用這個(gè)標(biāo)記并且可以被外部調(diào)用的activity,要注意使得用戶可以重新回到這個(gè)任務(wù)。當(dāng)你不想用戶重新回到任務(wù)的時(shí)候,將 <activity> 節(jié)點(diǎn)的finishOnTaskLaunch 設(shè)置為"true". 請參見前面的 Clearing the stack。

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析 Android SMS短信服務(wù)相關(guān)概念簡述
  2.  
  3. PythonAndroid數(shù)據(jù)庫相關(guān)代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應(yīng)用程序的四個(gè)關(guān)鍵點(diǎn)
責(zé)任編輯:chenqingxiang 來源: 51CTO.com
相關(guān)推薦

2010-03-03 14:51:02

Android手機(jī)

2010-02-05 15:22:14

2010-03-04 16:38:37

Android開發(fā)技巧

2010-02-07 10:21:27

Android應(yīng)用程序

2010-02-06 16:26:30

Android開源

2010-02-06 10:42:41

Android Ser生命周期

2011-06-02 11:13:10

Android Activity

2010-02-22 10:18:29

Python代碼

2010-03-01 14:28:46

Python進(jìn)程

2010-03-04 17:50:42

Android操作系統(tǒng)

2016-12-02 19:00:13

Android FraAndroid

2010-02-23 16:46:27

Python設(shè)計(jì)語言

2010-02-06 17:17:17

Android手機(jī)

2010-02-05 14:54:56

Android UI

2010-02-06 09:38:42

Android調(diào)用服務(wù)

2010-03-02 15:51:05

Android手機(jī)

2010-02-23 15:29:43

Python 編輯器

2010-03-05 13:46:12

Android編程學(xué)習(xí)

2010-02-05 14:34:11

Android操作系統(tǒng)

2010-03-03 13:43:46

Android手機(jī)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號