<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冰浪

    哥已不再年輕 - 堅(jiān)定夢(mèng)想,畢生追求!
    posts - 85, comments - 90, trackbacks - 0, articles - 3
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    淺談Activity幾種不同的啟動(dòng)方式

    Posted on 2010-01-22 00:18 冰浪 閱讀(1075) 評(píng)論(0)  編輯  收藏 所屬分類: Android

    開發(fā)者在設(shè)計(jì)之初可以決定用戶與應(yīng)用程序的交互方式,其中包括如何選著程序啟動(dòng)入口以及Package中所包含的Activities。眾所周知,應(yīng)用程序是一系列有著特定功能的Activities組成,它們有自己的屬性和行為。用戶可以在Home中通過啟動(dòng)快捷方式將當(dāng)前進(jìn)程引入特定的Activites,或者可以在其它程序進(jìn)程中啟動(dòng)外部的Activities。有的人會(huì)問,了解程序的啟動(dòng)方式有用嗎?當(dāng)然,了解不同的啟動(dòng)方式才能更好的根據(jù)需要設(shè)計(jì)Activities。

    下邊將介紹五種與其相關(guān)的設(shè)計(jì)模式:

    • 通過Home中的快捷方式圖標(biāo)(或者下拉的Application Launcher)啟動(dòng):這是最常見的啟動(dòng)方式,而且代表程序具備獨(dú)立的運(yùn)行條件。通常會(huì)在Manifest中指定某個(gè)Activity的android.intent.category屬性為L(zhǎng)auncher。
    • 在其它程序中間接啟動(dòng):這體現(xiàn)了Activities在Android中一個(gè)非常重要的特性“重用性”,例如:用戶在當(dāng)前的操作過程中希望將特定的信息通過Email的方式發(fā)送給好友,一般情況下會(huì)利用系統(tǒng)默認(rèn)的處理郵件Activity響應(yīng)這項(xiàng)請(qǐng)求,如果恰巧此時(shí)系統(tǒng)中存在其它類似intent-filter的Activites,那么將會(huì)提供給用戶一個(gè)可選擇的對(duì)話框,用戶可以根據(jù)需要啟動(dòng)恰當(dāng)?shù)膽?yīng)用程序,這個(gè)過程可以看作為間接的啟動(dòng)Applications。或者在預(yù)知當(dāng)前系統(tǒng)配置的情況下,直接應(yīng)用(startActivity() 或者startActivityForResult())啟動(dòng)特定的Activity。
      • StartActivity(): 通過這種方式啟動(dòng)應(yīng)用程序可以看作為獨(dú)立運(yùn)行于系統(tǒng)中,啟動(dòng)它的parent無需得到其所運(yùn)行的返回值,更具體的講是一個(gè)Standalone的應(yīng)用程序啟動(dòng)了另一個(gè)有著同樣Standalone特性的程序。
      • StartActivityForResult(): 通過方法的命名可以很直觀的看到,其最大的作用是當(dāng)啟動(dòng)了某個(gè)Activity后,parent依然關(guān)聯(lián)著當(dāng)前進(jìn)程所處理的Activity。當(dāng)操作完成后,會(huì)有特定的返回值作為Parent響應(yīng)某些Events的結(jié)果。(Androidres.com)
    • 強(qiáng)制程序僅以被其它程序調(diào)用的方式啟動(dòng)(沒有直接的啟動(dòng)入口):在系統(tǒng)中有相當(dāng)一部分的應(yīng)用程序需要有嚴(yán)格的運(yùn)行條件(Context),其無法以Stand alone的方式獨(dú)立運(yùn)行于進(jìn)程中。具備這種特性的Application大體上分為兩種:其一,帶有特定返回值的應(yīng)用程序。parent出于當(dāng)前操作需要,通過啟動(dòng)其它Application來獲得某些特定的資源。例如:輸入法或者文件資源選擇器等。另外一種情況,經(jīng)常被調(diào)用來修改系統(tǒng)設(shè)置或者提供單一有特定目的的操作。這樣的Application無需在Home中提供快捷啟動(dòng)方式,其僅僅被其它某些程序在特定的需求下來滿足需求。例如:更換系統(tǒng)鈴音程序。
    • 在一個(gè)Application中包含有多個(gè)Mian Activities,并且各自具備有獨(dú)立的啟動(dòng)入口:很多開發(fā)者都習(xí)慣于默認(rèn)的開發(fā)配置,一個(gè)Application僅僅包含一個(gè)獨(dú)立的應(yīng)用。然后在特定的需求下可以打破這個(gè)限定,系統(tǒng)允許開發(fā)者將多個(gè)Main Activities應(yīng)用捆綁在同一個(gè)Application中,而且這些Main Activities可以在Home中有獨(dú)立的啟動(dòng)快捷方式。然而有非常重要的一點(diǎn)需要特別強(qiáng)調(diào),這種方式并不提倡在任何情況下采用,一般當(dāng)兩個(gè)應(yīng)用程序需要調(diào)用相同的系統(tǒng)資源或者包含有大部分相同功能的應(yīng)用時(shí),才可以考慮采用這種方式來簡(jiǎn)化用戶的安裝過程(另外一個(gè)角度來看,起到優(yōu)化系統(tǒng)資源的目的)。技術(shù)上需要注意為不同的Main Activity定義不同的Task affinity。例如:Camera和Camcorder,它們共同使用攝像頭,而且同樣采用Gallery作為資源管理器,他們的Task Affinity分別設(shè)置為:”com.android.camera” 和 “com.android.videocamera”。
    • 以Widget的方式體現(xiàn)Activity的應(yīng)用價(jià)值:嚴(yán)格意義上來看,這的確算得上是一種啟動(dòng)方式,某些Application將部分常用的功能以Widget的形式在Home或者其它Application中被引用。

    以上是Android系統(tǒng)中在不同的需求下來啟動(dòng)Activity的方式,開發(fā)者可以根據(jù)特定的需求為Application設(shè)定一種恰當(dāng)?shù)膯?dòng)方式來充分的“為人民服務(wù)”。

    【http://www.androidres.com/index.php/2009/06/28/android-various-activity-startup-methods/】

    主站蜘蛛池模板: g0g0人体全免费高清大胆视频| 亚洲精品午夜在线观看| 亚洲av无码一区二区三区天堂 | 精品成人一区二区三区免费视频| 中文字幕影片免费在线观看| 91嫩草私人成人亚洲影院| 亚洲国产精品免费视频| 亚洲一区二区成人| 67194成手机免费观看| 亚洲天堂福利视频| 好男人视频在线观看免费看片| 国产99在线|亚洲| 成人毛片18女人毛片免费96| 美女视频黄免费亚洲| 午夜一级毛片免费视频| 精品久久久久久亚洲综合网| 亚洲国产小视频精品久久久三级 | 中文字幕在线观看亚洲日韩| 成人免费淫片在线费观看| 亚洲日韩精品无码AV海量| 免费国产美女爽到喷出水来视频| 免费精品国产自产拍在线观看 | 免费h成人黄漫画嘿咻破解版| 一级黄色免费网站| 亚洲精品无码高潮喷水在线| 最近中文字幕mv免费高清在线 | 亚洲丰满熟女一区二区v| 99精品全国免费观看视频| 亚洲av中文无码字幕色不卡| 久久久久亚洲AV无码专区网站| 成人精品一区二区三区不卡免费看| 噜噜噜亚洲色成人网站∨| 久久久久久99av无码免费网站 | 91情国产l精品国产亚洲区| 成人黄页网站免费观看大全| 亚洲免费视频一区二区三区| 亚洲美女激情视频| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲精品免费网站| 黄色网址在线免费观看| 亚洲短视频男人的影院|