日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)Android → Android開發(fā)中開始一個Task和BackStack的高級內(nèi)容

      Android開發(fā)中開始一個Task和BackStack的高級內(nèi)容

      相關軟件相關文章發(fā)表評論 來源:承香墨影時間:2013/11/19 8:26:07字體大小:A-A+

      作者:承香墨影點擊:78次評論:0次標簽: Android

      歐朋瀏覽器(Opera Mini)v12.2.0.8官方安卓版
      • 類型:網(wǎng)絡瀏覽大。3.2M語言:中文 評分:7.1
      • 標簽:
      立即下載

      Android下Activity的啟動模式,涉及到了Task和BackStack的內(nèi)容,對這些不熟悉的朋友,可以先去看看:Android--Activity的啟動模式。這篇博客主要講講Task和BackStack的高級內(nèi)容。

      本篇文章的內(nèi)容包括:

      開始一個Task

      BackStack回退時Activity狀態(tài)

      BackStack的清理

      開始一個Task

      之前已經(jīng)了解到,Android的Task通常起始于HOME頁面下點擊應用程序圖標或其在桌面快捷圖標。所以我們在開發(fā)一個應用程序的時候,需要指定應用程序的入口Activity,通過在AndroidManifest.xml清單文件中某個<Activity/>標簽內(nèi),使用<intent-filter/>標簽內(nèi)指定。需要設置action為"android.intent.action.MAIN",設置category為"android.intent.category.LAUNCHER"。

      1 <activity ... >
      2     <intent-filter ... >
      3         <action android:name="android.intent.action.MAIN" />
      4         <category android:name="android.intent.category.LAUNCHER" />
      5     </intent-filter>
      6     ...
      7 </activity>

      這樣,當用戶點擊應用程序圖標之后,就會以這個入口Activity為基礎,創(chuàng)建一個任務(Task),而這個Activity為這個Task中的第一個Activity,稱為根Activity。

      BackStack回退時Activity狀態(tài)

      Android中存在多個Task,但是同一時刻只有一個Task被置于前臺,其它的均為后臺,而后臺的Task內(nèi)的Activity,均為Stopped狀態(tài)。Android系統(tǒng)中有多種方式切換Task,比如:按HOME鍵回到桌面、長按HOME鍵切換到其他Task等。而在同一個Task中,也只有BackStack最上面的Activity處于獲得焦點的狀態(tài),其它也為Stopped,每當系統(tǒng)需要把Activity置于Stopped時,都會自動保其狀態(tài)數(shù)據(jù),比如:控件輸入值、滾動條位置,以便下次獲得焦點的時候還原。

      但是有一種特殊的情況,對Android系統(tǒng)的內(nèi)存管理有了解的朋友都應該知道,當系統(tǒng)資源不足的時候,如內(nèi)存不足,會自動回收一些優(yōu)先級比較低的組件的線程,以釋放資源給新的組件使用。那么就存在問題了,當一個Task被切換到后臺之后,如果系統(tǒng)資源告急,自動銷毀了某個后臺Task中的Activity(除了根Activity外),當用戶再次切換回那個Task的時候,BackStack中存在這個Activity的標記,但是內(nèi)存中已經(jīng)不存在這個Activity的實例了,這個時候,系統(tǒng)就會通過Bundle來重新創(chuàng)建一個Activity用于還原它,這樣保證了用戶體驗,使用戶還是感覺在之前的頁面中操作。但是默認情況下,Bundle是不會保存之前Activity中的信息的,比如:控件輸入值、滾動條位置。這個時候,如果這個Activity的內(nèi)容很重要的話,需要我們以編碼的方式去保存數(shù)據(jù),并在重新創(chuàng)建的時候,以編碼的方式還原這個數(shù)據(jù)。

      這個時候就需要用到兩個Activity的生命周期方法,onSaveInstanceState()和onRestoreInstanceState()。下面是這兩個方法的簽名:

      protected void onSaveInstanceState(Bundle outState):當Activity被系統(tǒng)回收的時候被調(diào)用 ,用這個方法保存Activity中需要保存的數(shù)據(jù),存入outState參數(shù)即可。

      protected void onRestoreInstanceState(Bundle savedInstanceState):當Activity被系統(tǒng)恢復的時候被調(diào)用,從Bundle中取出數(shù)據(jù),設置會控件中,當然也可以通過重寫onCreate()方法來設置數(shù)據(jù),因為onCreate()一樣可以獲取到,但是推薦使用onRestoreInstanceState()。

      BackStack的清理

      上面描述的Activity被系統(tǒng)回收已經(jīng)之后在還原的情況,為默認情況。在Android系統(tǒng)的清單文件中,不光為我們提供了設置啟動模式的屬性android:LauncherMode,還為我們提供了Activity的清理模式,有如下幾個:

      android:alwaysRetainTaskState:這個屬性只對根Activity有效,默認為false,當其設置為true的時候,當這個根Activity失去焦點被置于后臺的時候,如不出現(xiàn)意外情況,其中的Activity將不會被系統(tǒng)回收。

      android:clearTaskOnTask:這個屬性只對根Activity有效,當這個根Activity失去焦點被置于后臺的時候,會清理BackStack中根Activity之上的所有Activity,并在下次獲得焦點的時候顯示根Activity。

      android:finishOnTaskLaunch:這個屬性只應用于單個Activity,它默認為false,當其設置為true的時候,當前Task如果在這個Activity獲得焦點的時候被切換到后臺,那么這個Activity直接被銷毀,哪怕只是離開一小會兒。

      總結(jié)

      自此就把Task和BackTask的內(nèi)容介紹完了,把Task和BackStack理解透徹了,對android應用開發(fā)有非常好的作用。可以有效提高用戶體驗,應用中的Activity應該如何顯示,應該長存(singleInstance),還是應該閱后即焚(finishOnTaskLaunch),等等場景。一款應用不應僅僅是功能的實現(xiàn),還需要注重用戶體驗,它不僅僅是一款應用,而是應該把它當成一款產(chǎn)品來開發(fā)。

      Android 多線程-----AsyncTask詳解

        opera瀏覽器
        (34)opera瀏覽器
        目前市場上的安卓瀏覽器種類繁多,不過有一款瀏覽器卻一直活躍在安卓系統(tǒng)上,那就是歐朋瀏覽器。歐朋瀏覽器是全球最流行的手機瀏覽器的中文版本。歐朋手機瀏覽器基于開發(fā),延續(xù)小巧快速節(jié)省流量的優(yōu)點,同時集成了諸多貼近中國用戶的社會化應用。歐朋瀏覽器最大的特色就是快,與同類產(chǎn)品相比優(yōu)勢比較明顯。體積小,適應性好,同時支持智能非智能手機。歐朋瀏覽器特點歐朋瀏覽器支持智能預讀智能縮放手勢操作,外加時尚個性化的界面...更多>>

        相關評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)