Android Home鍵狀態保存運用場景


當我們在一個Activity中有接收Intent過來的值,或者當前Activity有保存數據時候,如果此時不小心按到了Home鍵,然后沒有及時回來而是運行了其它應用程序,當你想起來的時候,恐怕已經是幾個小時后了,而此刻再回來應用程序,很有可能因為手機內存吃緊,應用程序內存被虛擬機回收,那么我們離開之前的Activity中的數據也就消失了。下面介紹兩個方法:
      @Override  
     protected  void  onSaveInstanceState  ( Bundle  outState )  {   
         super.  onSaveInstanceState (  outState )  ;  
         outState . putString  ( "DJ_ID"  , DJ_ID  )  ;    
     }   
    取保存的值:
    方法1
    @Override  
     protected  void  onRestoreInstanceState  ( Bundle  savedInstanceState )  {  
         super.  onRestoreInstanceState (  savedInstanceState )  ;  
        DJ_ID  =  savedInstanceState . getString  ( "DJ_ID"  ) ;
     }
   方法2 在OnCreate中
   if ( savedInstanceState  ==null  ){
     //第一次過來接收Intent過來的值
       DJ_ID  =  getIntent ()  . getExtras  () .  getString (  "DJ_ID" )  ; }
   else {
      //取保存的值
       DJ_ID  =  savedInstanceState  . getString  ( "DJ_ID"  ) ;  }
     
 
onSaveInstanceState   這個方法給我們提供一個數據保存的時機,當虛擬機監測到當前Activity要消失的時候會觸發這個方法,所以我們可以把想要保存的數據放在這里保存,在Oncreate中通過Bundle去取。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM