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

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

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

    冰浪

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

    淺談Activity幾種不同的啟動方式

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

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

    下邊將介紹五種與其相關的設計模式:

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

    以上是Android系統(tǒng)中在不同的需求下來啟動Activity的方式,開發(fā)者可以根據(jù)特定的需求為Application設定一種恰當?shù)膯臃绞絹沓浞值?#8220;為人民服務”。

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

    主站蜘蛛池模板: 亚洲自偷自偷精品| 日本久久久免费高清| 亚洲91精品麻豆国产系列在线| 国产成人精品免费视频大全| 99在线观看免费视频| 亚洲精品亚洲人成在线观看| 精品国产呦系列在线观看免费| 日本视频一区在线观看免费| 日韩电影免费在线| 亚洲狠狠婷婷综合久久| 日韩精品免费视频| 免费观看国产小粉嫩喷水| 中文字幕亚洲免费无线观看日本| 亚在线观看免费视频入口| 91亚洲va在线天线va天堂va国产| 免费在线观看h片| 亚洲人成欧美中文字幕| 永久免费视频网站在线观看| 久久久久久亚洲精品不卡| 亚洲xxxx视频| 国产成人免费手机在线观看视频 | 日韩免费a级在线观看| 亚洲精品又粗又大又爽A片| 亚洲福利中文字幕在线网址| 亚洲精品中文字幕无码AV| 青青青国产在线观看免费| 亚洲综合精品香蕉久久网97| 99无码人妻一区二区三区免费| 亚洲日本在线电影| 亚洲男人av香蕉爽爽爽爽| 日本在线免费播放| 97久久国产亚洲精品超碰热| 亚洲第一成人影院| 久久久精品2019免费观看| 亚洲高清国产拍精品熟女| 亚洲美女又黄又爽在线观看| a级毛片免费网站| 亚洲视频在线观看网站| 国产色婷婷精品免费视频| 热久久这里是精品6免费观看| 亚洲日韩中文字幕在线播放|