新聞中心
這是關于在應用中保存數(shù)據(jù)和應用狀態(tài)系列文章中的***篇。在安卓SDK中有許多機制可以用來保存數(shù)據(jù),決定使用哪一種和何時觸發(fā)該操作常讓人困惑。 當創(chuàng)建個人應用程序的時候你想要做的***件、最容易的事就是保存一些用戶輸入的、明確需要保存的數(shù)據(jù)。下面是一些常用來持久化存儲的方法:

堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設服務10余年為成都茶藝設計小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營銷網(wǎng)站建設商城網(wǎng)站建設手機網(wǎng)站建設小程序網(wǎng)站建設網(wǎng)站改版,從內(nèi)容策劃、視覺設計、底層架構、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設服務。
- 數(shù)據(jù)保存最基本的方法就是保存到外置存儲設備的文件上。這種存儲可以被用戶和所有的應用程序獲得,當設備當作外置存儲掛在的時候也可以看到。即使 你的應用卸載了該文件也會一直保留,除非你用GetExternalFileDir方法獲得保存文件的文件夾。這最適用于被用戶編輯過的文件,即使應用卸 載了也***一直保留著,例如圖片和文檔。
- 你也可以把文件保存為內(nèi)部存儲,這對于你的應用程序是私有的。這種情況下,用戶和其他應用程序都得到這些文件,并且當你應用卸載的時候文件將被刪除。這最適用于保存一些簡單的數(shù)據(jù),避免了處理數(shù)據(jù)庫的開銷。
- 另外,你也可以把用戶的配置保存成 鍵/值對,使用Preference API來創(chuàng)建SharedPreferences文件。你可以創(chuàng)建一個PreferenceActivity或者包含 PreferenceFragment的Activity保存參數(shù)配置,他們的布局中都有Preferences 對象來代替View對象。
- ***,如果你要保存的數(shù)據(jù)結構很復雜,每個應用都有自己的私有的SQLLite數(shù)據(jù)庫來保存數(shù)據(jù)。如果你的應用被卸載,這些數(shù)據(jù)也將被銷毀。
另外,有些情況需要保存應用程序的當前狀態(tài),因為某個事件被觸發(fā)。例如:
- 當設備被旋轉的時候,當前的Activity被重新創(chuàng)建,布局也被調(diào)整。
- 當你的應用被用戶或者其他應用放到后臺去運行的時候,例如手機接到一個電話。另外,用戶打開了應用程序的另一個Activity,當前的Activity也會被放到后臺。任何在后臺運行的Activity當內(nèi)存不足的時候都可能被回收,當需要的時候再被重新創(chuàng)建。
- 當用戶明確地關閉了應用。
以上的情況,你都需要持久化保存用戶輸入的數(shù)據(jù)。當Activity被放到后臺或者在銷毀的過程中,onPause方法總是被調(diào)用,緊接著是 onStop即使UI被完全隱藏。所以***在OnPause方法中保存數(shù)據(jù)。隨后,當用戶再次接觸之前的Activity,如果它仍在內(nèi)存中 onRestart,onstart和onResume方法將被調(diào)用,如果已經(jīng)被回收了就需要被重新常見,那么onCreate、onStart、和 onResume將被調(diào)用。所以如果你想在所有情況下都再次顯示之前的數(shù)據(jù),你應該在onResume方法中恢復UI。
如果不需要***的保存數(shù)據(jù)而只想保存UI的狀態(tài),你可以在onSaveInstanceState方法中把數(shù)據(jù)保存在Bundle中。該方法不能用 來保存數(shù)據(jù),因為它不是Activity生命周期的一部分,僅僅當Activity需要重新創(chuàng)建或者被放到后臺的時候被UI事件觸發(fā),被***銷毀的時候該 方法不被調(diào)用。所以它僅用于保存一些暫時性View狀態(tài)。有些數(shù)據(jù)已經(jīng)被安卓SDK保存了,但你可能需要保存些額外的信息,例如,假如你有些自定義的控 制,當用戶按返回鍵回到Activity的時候,UI的狀態(tài)需要被恢復,如果Activity仍在內(nèi)存中,保存有狀態(tài)信息的bundle對象可以在 onRestoreInstanceState方法中獲得,如果Activity被回收了需要重新創(chuàng)建,可以在onCreate方法中獲得bundle對 象。
本文題目:如何在安卓應用程序中保存數(shù)據(jù)
文章位置:http://www.5511xx.com/article/dpoidii.html


咨詢
建站咨詢
