自學鴻蒙應用開發(22)- 在應用本地存儲少許數據

鴻蒙系統中的輕量級偏好數據庫主要用於保存應用的一些經常使用配置。數據存儲在本地文件中,同時也加載在內存中的,因此訪問速度更快,效率更高。java

先看本文的演示視頻:
web

首先是實現基本功能。數據庫

public class MainAbilitySlice extends AbilitySlice { static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0x12345, "MainAbilitySlice"); static final String preferenceFile = "preferences"; static final String counterKey = "ClickCounter"; int clickCounter = 0; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); readCounter(); Text hello = (Text)findComponentById(ResourceTable.Id_text_hello); hello.setClickedListener(new Component.ClickedListener() { public void onClick(Component component) { clickCounter++; try { ohos.global.resource.ResourceManager resManager = getContext().getResourceManager(); String hello_msg = resManager.getElement(ResourceTable.String_hello_message).getString(); new ToastDialog(getContext()) .setText(hello_msg + "X" + clickCounter) .setAlignment(LayoutAlignment.BOTTOM) .show(); } catch (IOException | NotExistException | WrongTypeException e) { e.printStackTrace(); } } });

代碼第5行定義了一個用來表示點擊次次數的clickCounter,其初值爲0。在【你好,鴻蒙!!!】的點擊事件處理代碼的第14行會對clickCounter進行增量操做,當每次點擊加1。
編程

若是隻是進行到這一步,每次程序重啓以後仍是會從1開始計數。爲了每次操做的結果不會丟失,咱們首先準備下面兩個函數,分別用來從偏好數據庫讀出數據和向偏好數據庫寫入數據:設計模式

private void readCounter(){ DatabaseHelper databaseHelper = new DatabaseHelper(getContext()); Preferences preferences = databaseHelper.getPreferences(preferenceFile); clickCounter = preferences.getInt(counterKey, 0);}
private void writeCounter(){ DatabaseHelper databaseHelper = new DatabaseHelper(getContext()); Preferences preferences = databaseHelper.getPreferences(preferenceFile); preferences.putInt(counterKey, clickCounter);}

這兩個方法使用使用的preferenceFile和conterKey分別用來表示偏好數據庫的文件名和輸出數據的鍵值,它們已經實如今第一段代碼的第3行和第4行定義。這種作法在程序的規模變大時更易於管理,可讀性更好。微信

方法準備好以後,咱們能夠向第一段代碼第10行那樣,在Slice類的onStart方法中調用readCounter,而後像下面代碼中第3行同樣,在Slice類的onStop方法中調用writeCounter。
架構

public void onStop() { writeCounter(); super.onStop(); // 打印一條日誌 HiLog.info(label, "MainAbilitySlice.onStop!");}

這樣就保證了在程序每次退出時保存counter值,在每次啓動時再將其讀出。app

須要注意的是:輕量級偏好數據庫屬於非關係型數據庫,不宜存儲大量數據,常常用於操做鍵值對形式數據的場景。ide


參考文檔
函數

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/database-preference-guidelines-0000000000030083


新書介紹

《實戰Python設計模式》是做者最近出版的新書,拜託多多關注!

本書利用Python 的標準GUI 工具包tkinter,經過可執行的示例對23 個設計模式逐個進行說明。這樣一方面可使讀者瞭解真實的軟件開發工做中每一個設計模式的運用場景和想要解決的問題;另外一方面經過對這些問題的解決過程進行說明,讓讀者明白在編寫代碼時如何判斷使用設計模式的利弊,併合理運用設計模式。

對設計模式感興趣並且但願隨學隨用的讀者經過本書能夠快速跨越從理解到運用的門檻;但願學習Python GUI 編程的讀者能夠將本書中的示例做爲設計和開發的參考;使用Python 語言進行圖像分析、數據處理工做的讀者能夠直接以本書中的示例爲基礎,迅速構建本身的系統架構。




以爲本文有幫助?請分享給更多人。

關注微信公衆號【面向對象思考】輕鬆學習每一天!

面向對象開發,面向對象思考!




本文分享自微信公衆號 - 面向對象思考(OOThinkingDalian)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索