av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

如何在安卓應(yīng)用程序中保存數(shù)據(jù)

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

堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都茶藝設(shè)計(jì)小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

  • 數(shù)據(jù)保存最基本的方法就是保存到外置存儲(chǔ)設(shè)備的文件上。這種存儲(chǔ)可以被用戶和所有的應(yīng)用程序獲得,當(dāng)設(shè)備當(dāng)作外置存儲(chǔ)掛在的時(shí)候也可以看到。即使 你的應(yīng)用卸載了該文件也會(huì)一直保留,除非你用GetExternalFileDir方法獲得保存文件的文件夾。這最適用于被用戶編輯過的文件,即使應(yīng)用卸 載了也***一直保留著,例如圖片和文檔。
  • 你也可以把文件保存為內(nèi)部存儲(chǔ),這對(duì)于你的應(yīng)用程序是私有的。這種情況下,用戶和其他應(yīng)用程序都得到這些文件,并且當(dāng)你應(yīng)用卸載的時(shí)候文件將被刪除。這最適用于保存一些簡(jiǎn)單的數(shù)據(jù),避免了處理數(shù)據(jù)庫的開銷。
  • 另外,你也可以把用戶的配置保存成 鍵/值對(duì),使用Preference API來創(chuàng)建SharedPreferences文件。你可以創(chuàng)建一個(gè)PreferenceActivity或者包含 PreferenceFragment的Activity保存參數(shù)配置,他們的布局中都有Preferences 對(duì)象來代替View對(duì)象。
  • ***,如果你要保存的數(shù)據(jù)結(jié)構(gòu)很復(fù)雜,每個(gè)應(yīng)用都有自己的私有的SQLLite數(shù)據(jù)庫來保存數(shù)據(jù)。如果你的應(yīng)用被卸載,這些數(shù)據(jù)也將被銷毀。

另外,有些情況需要保存應(yīng)用程序的當(dāng)前狀態(tài),因?yàn)槟硞€(gè)事件被觸發(fā)。例如:

  • 當(dāng)設(shè)備被旋轉(zhuǎn)的時(shí)候,當(dāng)前的Activity被重新創(chuàng)建,布局也被調(diào)整。
  • 當(dāng)你的應(yīng)用被用戶或者其他應(yīng)用放到后臺(tái)去運(yùn)行的時(shí)候,例如手機(jī)接到一個(gè)電話。另外,用戶打開了應(yīng)用程序的另一個(gè)Activity,當(dāng)前的Activity也會(huì)被放到后臺(tái)。任何在后臺(tái)運(yùn)行的Activity當(dāng)內(nèi)存不足的時(shí)候都可能被回收,當(dāng)需要的時(shí)候再被重新創(chuàng)建。
  • 當(dāng)用戶明確地關(guān)閉了應(yīng)用。

以上的情況,你都需要持久化保存用戶輸入的數(shù)據(jù)。當(dāng)Activity被放到后臺(tái)或者在銷毀的過程中,onPause方法總是被調(diào)用,緊接著是 onStop即使UI被完全隱藏。所以***在OnPause方法中保存數(shù)據(jù)。隨后,當(dāng)用戶再次接觸之前的Activity,如果它仍在內(nèi)存中 onRestart,onstart和onResume方法將被調(diào)用,如果已經(jīng)被回收了就需要被重新常見,那么onCreate、onStart、和 onResume將被調(diào)用。所以如果你想在所有情況下都再次顯示之前的數(shù)據(jù),你應(yīng)該在onResume方法中恢復(fù)UI。

如果不需要***的保存數(shù)據(jù)而只想保存UI的狀態(tài),你可以在onSaveInstanceState方法中把數(shù)據(jù)保存在Bundle中。該方法不能用 來保存數(shù)據(jù),因?yàn)樗皇茿ctivity生命周期的一部分,僅僅當(dāng)Activity需要重新創(chuàng)建或者被放到后臺(tái)的時(shí)候被UI事件觸發(fā),被***銷毀的時(shí)候該 方法不被調(diào)用。所以它僅用于保存一些暫時(shí)性View狀態(tài)。有些數(shù)據(jù)已經(jīng)被安卓SDK保存了,但你可能需要保存些額外的信息,例如,假如你有些自定義的控 制,當(dāng)用戶按返回鍵回到Activity的時(shí)候,UI的狀態(tài)需要被恢復(fù),如果Activity仍在內(nèi)存中,保存有狀態(tài)信息的bundle對(duì)象可以在 onRestoreInstanceState方法中獲得,如果Activity被回收了需要重新創(chuàng)建,可以在onCreate方法中獲得bundle對(duì) 象。


本文標(biāo)題:如何在安卓應(yīng)用程序中保存數(shù)據(jù)
鏈接地址:http://uogjgqi.cn/article/dpoidii.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流