亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Android Developers Training】 16. 暫停和恢

系統 2326 0

注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術一般,由于喜愛安卓而產生了翻譯的念頭,純屬個人興趣愛好。

原文鏈接: http://developer.android.com/training/basics/activity-lifecycle/pausing.html


在正常使用應用的過程中,在前臺的activity有時候會被其它組件所遮擋,導致這個activity進入到暫停態。例如:當打開一個半透明activity(dialog中有這樣一種風格),之前的activity會被暫停。只要這個activity仍然保持部分可見,同時當前沒有獲得用戶焦點,它就會保持在暫停態。

然而,當一個activity被完全遮蔽,同時變得不可見,那么它將進入停止態(這塊內容將在下一節課展開)。

當你的activity進入暫停態,系統將會對你的activity調用 onPause() 方法,這使得你可以停止那些在暫停態階段不能繼續進行的操作(比如一個正在播放的視頻),或者存儲一些信息,以防如果用戶退出應用后丟失數據。如果用戶從暫停態回到你的activity,系統會調用 onResume() 方法來恢復它。

Note:

當你的activity執行了 onPause() 方法,這表明activity可能會臨時地暫停一下,用戶可能會重新獲得activity焦點。然而,它也通常可能意味著用戶將要離開你的activity。

?

圖1. 當一個半透明的activity遮擋了你的activity,系統會調用 onPause() 方法,然后 activity 在暫停態保持等待(1)。

如果用戶回到這個 activity 時, activity 處于暫停態,將會調用 onResume() 方法(2)。

?

一). 暫停你的Activity

當系統對你的Activity調用 onPause() 方法,從技術上說,這表明你的activity處于部分顯示的狀態,但多數情況這意味著用戶將要離開activity,并且activity將要馬上進入停止態。你應該經常在以下情況下使用 onPause() 回調函數:

  • 停止那些會消耗CPU資源的動畫或其它正在執行的操作
  • 提交還未保存的修改(僅當用戶希望當他們離開時這些變化會被永久的保存,比如:一個郵件草稿)
  • 釋放系統資源,比如廣播接收器(broadcast receiver),對傳感器(如:GPS)的控制權,或其它任何可能消耗電量的資源(如果用戶不再需要這些資源)

例如,如果你的應用使用相機( Camera ),在 onPause() 中釋放是一個不錯的辦法:

      
        @Override


      
      
        public
      
      
        void
      
      
         onPause() {

    
      
      
        super
      
      .onPause();  
      
        //
      
      
         Always call the superclass method first



    
      
      
        //
      
      
         Release the Camera because we don't need it when paused

    
      
      
        //
      
      
         and other activities might need to use it.
      
      
        if
      
       (mCamera != 
      
        null
      
      
        ) {

        mCamera.release()

        mCamera 
      
      = 
      
        null
      
      
        ;

    }

}
      
    

通常,你不應該使用 onPause() 來存儲用戶的變更(比如在一個表單中填寫的個人信息)到ROM中,只有在你確定用戶期望這些改變(比如郵件草稿)應該被永久存儲時,才應該在 onPause() 中把它們永久存儲起來。然而,你應該避免在 onPause() 中執行大量消耗CPU資源的事務,比如寫入數據庫,因為這將會影響到下一個activity變化為可見狀態的流暢度。(這些大量消耗資源的事務應該在 onStop() 方法中執行)

你應該盡量保持在 onPause() 中執行的操作相對簡單,以此使得用戶到下一個目的地的切換是流暢的(如果你的activity實際上已經進入了停止態)。

Note:

當你的activity處于暫停態, Activity 實例會存儲在RAM中, 當這個activity恢復時,會重新從存儲里調用。在activity切換到恢復態的過程中你不再需要重新初始化任何已經創建過的組件。

?

二). 恢復你的Activity

當用戶將你的activity從暫停態恢復到恢復態時,系統會調用 onResume() 方法。

注意:每當你的activity來到前臺時,系統都會調用這個方法,包括當它第一次被創建時。例如:你應該在 onResume() 中初始化那些你在 onPause() 方法中釋放的組件,并且完成其他當activity進入恢復態時必須執行的初始化操作。(例如啟動一些動畫,以及初始化那些只有activity獲取了用戶焦點時才會被使用的組件)

下面這個 onResume() 例子對應于上述 onPause() 例子,它初始化了當 activity 進入暫停態時釋放的相機:

      
        @Override


      
      
        public
      
      
        void
      
      
         onResume() {

    
      
      
        super
      
      .onResume();  
      
        //
      
      
         Always call the superclass method first



    
      
      
        //
      
      
         Get the Camera instance as the activity achieves full user focus
      
      
        if
      
       (mCamera == 
      
        null
      
      
        ) {

        initializeCamera(); 
      
      
        //
      
      
         Local method to handle camera init
      
      
            }

}
      
    

【Android Developers Training】 16. 暫停和恢復一個Activity


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月伊人网 | 欧美亚洲第一页 | 中文字幕人成乱码第一页 | 亚洲欧洲日韩在线 | 四虎亚洲| 成人久久18免费游戏网站 | 亚洲欧美人成人让影院 | 俺去鲁婷婷六月色综合 | 狠狠操操 | 日韩在线第三页 | 日本中文在线观看 | 日韩中文字幕一区 | 免费香蕉依人在线视频久 | 91热久久免费频精品黑人99 | 在线视频不卡国产在线视频不卡 | 亚洲另类图 | 欧美xxxx8888视频 | 亚洲短视频在线观看 | 亚洲大片免费 | 尹人香蕉网在线观看视频 | 尤物视频国产 | 99视频在线免费看 | 一级片亚洲 | 国产午夜亚洲精品久久www | 欧美黑人巨大肥婆性视频 | 影音先锋久草 | 国产福利在线观看视频 | www.亚洲精品.com | 日本一区精品久久久久影院 | 亚洲一级毛片免费在线观看 | 亚洲精品综合久久中文字幕 | 四虎官方影库 | 在线视频福利 | 日本成人不卡视频 | 欧美激情精品久久久久久久九九九 | 亚洲欧美日韩久久一区 | 亚洲欧美中文日韩综合 | 黄色一级毛片在线观看 | a v在线男人的天堂观看免费 | 人人狠狠综合久久亚洲88 | 久久婷婷一区二区三区 |