Android——處理裝置旋轉Activity銷毀時臨時資料丟失的問題

來源:互聯網
上載者:User

標籤:android


     一,在裝置的旋轉的時候,發生了什嗎?

          

裝置旋轉時候,當前的activity執行個體會被系統銷毀,然後建立一個新的Activity執行個體。


接下來我們通過檢測Activity的生命週期來觀察下:



上面是我啟動activity時依次發生的事件,接下來我旋轉裝置:




 

              可以看到,旋轉的時候,第一個activity被destroy掉,之後新的activity被建立。


  二,理解裝置配置與備選資源

 

旋轉裝置會改變裝置配置。裝置配置是用來描述裝置目前狀態的一系列特徵。這些特徵包括:螢幕的方向,螢幕的尺寸,螢幕密度(是一個固定的裝置配置,無法在運行時發生改變),鍵盤類型,底座模式及語言。

 

只要在應用運行中裝置配置發生了變化,安卓就會銷毀當前activity,然後再建立一個activity.



三,為裝置旋轉後使用新布局





     ,在res檔案夾下建立layout-land檔案夾,在裡面建立同名布局檔案,那麼,當裝置轉到水平的時候,新建立activity的時候,就會自動使用這個檔案夾下的水平布局檔案。


四,在裝置旋轉之前,如何儲存當前的臨時資料?


     類似Web中的重新整理,當我重新整理後,當前頁面的臨時資料都被清掉了,比如我當前正在填寫一個表單,裡面選擇了性別女,重新整理下,又要重新填寫。顯然,裝置旋轉時產生了一個隱性的bug,那麼,安卓中如何處理這種儲存臨時資料的問題呢?


     我們可以通過重寫onSaveInstanceState方法實現。


      首先,在這個方法裡面寫入要儲存的資料:



     之後,我們在OnCreate方法裡面重新載入資料:

  









著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android——處理裝置旋轉Activity銷毀時臨時資料丟失的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.