日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS輕量級偏好數(shù)據(jù)庫開發(fā)指導(dǎo)

場景介紹

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、晉源網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為晉源等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

輕量級偏好數(shù)據(jù)庫是輕量級存儲,主要用于保存應(yīng)用的一些常用配置,并不適合存儲大量數(shù)據(jù)和頻繁改變數(shù)據(jù)的場景。用戶的數(shù)據(jù)保存在文件中,可以持久化的存儲在設(shè)備上。需要注意的是用戶訪問的實例包含文件所有數(shù)據(jù),并一直加載在設(shè)備的內(nèi)存中,并通過輕量級偏好數(shù)據(jù)庫的 API 完成數(shù)據(jù)操作。

接口說明

輕量級偏好數(shù)據(jù)庫向本地應(yīng)用提供了操作偏好型數(shù)據(jù)庫的 API,支持本地應(yīng)用讀寫少量數(shù)據(jù)及觀察數(shù)據(jù)變化。數(shù)據(jù)存儲形式為鍵值對,鍵的類型為字符串型,值的存儲數(shù)據(jù)類型包括整型、字符串型、布爾型、浮點型、長整型、字符串型 Set 集合。

創(chuàng)建數(shù)據(jù)庫

通過數(shù)據(jù)庫操作的輔助類可以獲取到要操作的 Preferences 實例,用于進(jìn)行數(shù)據(jù)庫的操作。

類名 接口名 描述
DatabaseHelper Preferences getPreferences(String name) 獲取文件對應(yīng)的 Preferences 單實例,用于數(shù)據(jù)操作。

查詢數(shù)據(jù)

通過調(diào)用 Get 系列的方法,可以查詢不同類型的數(shù)據(jù)。

類名 接口名 描述
Preferences int getInt(String key, int defValue) 獲取鍵對應(yīng)的 int 類型的值。
Preferences float getFloat(String key, float defValue) 獲取鍵對應(yīng)的 float 類型的值。

插入數(shù)據(jù)

通過 Put 系列的方法可以修改 Preferences 實例中的數(shù)據(jù),通過 flush 或者 flushSyn c將 Preferences 實例持久化。

類名 接口名 描述
Preferences Preferences putInt(String key, int value) 設(shè)置 Preferences 實例中鍵對應(yīng)的 int 類型的值。
Preferences Preferences putString(String key, String value) 設(shè)置 Preferences 實例中鍵對應(yīng)的 String 類型的值。
Preferences void flush() 將 Preferences 實例異步寫入文件。
Preferences boolean flushSync() 將 Preferences 實例同步寫入文件。

觀察數(shù)據(jù)變化

輕量級偏好數(shù)據(jù)庫還提供了一系列的接口變化回調(diào),用于觀察數(shù)據(jù)的變化。開發(fā)者可以通過重寫 onChange 方法來定義觀察者的行為。

類名 接口名 描述
Preferences void registerObserver(PreferencesObserver preferencesObserver) 注冊觀察者,用于觀察數(shù)據(jù)變化。
Preferences void unRegisterObserver(PreferencesObserver preferencesObserver) 注銷觀察者。
Preferences.PreferencesObserver void onChange(Preferences preferences, String key) 觀察者的回調(diào)方法,任意數(shù)據(jù)變化都會回調(diào)該方法。

刪除數(shù)據(jù)文件

通過調(diào)用以下兩種接口,可以刪除數(shù)據(jù)文件。

類名 接口名 描述
DatabaseHelper boolean deletePreferences(String name) 刪除文件和文件對應(yīng)的Preferences單實例。
DatabaseHelper void removePreferencesFromCache(String name) 刪除文件對應(yīng)的Preferences單實例。

移動數(shù)據(jù)庫文件

類名 接口名 描述
DatabaseHelper boolean movePreferences(Context sourceContext, String sourceName, String targetName) 移動數(shù)據(jù)庫文件。

開發(fā)步驟

  1. 準(zhǔn)備工作,導(dǎo)入對輕量級偏好數(shù)據(jù)庫 SDK 到開發(fā)環(huán)境。
  1. 獲取 Preferences 實例。

讀取指定文件,將數(shù)據(jù)加載到 Preferences 實例,用于數(shù)據(jù)操作。

   DatabaseHelper databaseHelper = new DatabaseHelper(context);// context入?yún)㈩愋蜑閛hos.app.Context
   String fileName = "name";
   Preferences preferences = databaseHelper.getPreferences(fileName);

  1. 從指定文件讀取數(shù)據(jù)。

首先獲取指定文件對應(yīng)的 Preferences 實例,然后借助 Preferences API 讀取數(shù)據(jù)。

java 接口 讀取整型數(shù)據(jù)

   int value = preferences.getInt("intKey", 0);

  1. 將數(shù)據(jù)寫入指定文件。

首先獲取指定文件對應(yīng)的 Preferences 實例,然后借助 Preferences API 將數(shù)據(jù)寫入 Preferences 實例,通過 flush 或者 flushSync 將 Preferences 實例持久化。

異步:

   preferences.putInt("intKey", 3);
   preferences.putString("StringKey", "String value");
   preferences.flush();

同步:

   preferences.putInt("intKey", 3);
   preferences.putString("StringKey", "String value");
   preferences.flushSync();

  1. 注冊觀察者。

開發(fā)者可以向 Preferences 實例注冊觀察者,觀察者對象需實現(xiàn)Preferences.PreferencesObserver 接口。flushSync() 或 flush() 執(zhí)行后,該 Preferences 實例注冊的所有觀察者的 onChange() 方法都會被回調(diào)。不再需要觀察者時請注銷。

   private class PreferencesChangeCounter implements Preferences.PreferencesObserver {
       final AtomicInteger notifyTimes = new AtomicInteger(0);
       @Override    
       public void onChange(Preferences preferences, String key) {
           if ("intKey".equals(key)) {
               notifyTimes.incrementAndGet();        
           }    
       }
   }
   // 向preferences實例注冊觀察者
   PreferencesChangeCounter counter = new PreferencesChangeCounter();
   preferences.registerObserver(counter);
   // 修改數(shù)據(jù)preferences.putInt("intKey", 3);
   boolean result = preferences.flushSync();
   // 修改數(shù)據(jù)后,onChange方法會被回調(diào),notifyTimes == 1
   int notifyTimes = counter.notifyTimes.intValue();
   // 向preferences實例注銷觀察者
   preferences.unRegisterObserver(counter);

  1. 移除 Preferences 實例。

從內(nèi)存中移除指定文件對應(yīng)的 Preferences 單實例。移除 Preferences 單實例時,應(yīng)用不允許再使用該實例進(jìn)行數(shù)據(jù)操作,否則會出現(xiàn)數(shù)據(jù)一致性問題。

   DatabaseHelper databaseHelper = new DatabaseHelper(context);
   // 指定文件名稱
   String fileName = "name";
   databaseHelper.removePreferencesFromCache(fileName);

  1. 刪除指定文件。

從內(nèi)存中移除指定文件對應(yīng)的 Preferences 單實例,并刪除指定文件及其備份文件、損壞文件。刪除指定文件時,應(yīng)用不允許再使用該實例進(jìn)行數(shù)據(jù)操作,否則會出現(xiàn)數(shù)據(jù)一致性問題

   DatabaseHelper databaseHelper = new DatabaseHelper(context);
   // 指定文件名稱
   String fileName = "name";
   boolean result = databaseHelper.deletePreferences(fileName);

  1. 移動指定文件。

從源路徑移動文件到目標(biāo)路徑。移動文件時,應(yīng)用不允許再操作該文件數(shù)據(jù),否則會出現(xiàn)數(shù)據(jù)一致性問題。

   Context targetContext = XXX;
   DatabaseHelper databaseHelper = new DatabaseHelper(targetContext);
   // 指定文件名稱
   String srcFile = "srcFile";
   String targetFile = "targetFile";
   Context srcContext = XXX;
   boolean result = databaseHelper.movePreferences(srcContext,srcFile,targetFile);

當(dāng)前題目:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS輕量級偏好數(shù)據(jù)庫開發(fā)指導(dǎo)
文章源于:http://www.5511xx.com/article/dhpshio.html