移動測試之android緩存的認識

一、數據存儲選項:Data Storage ——Storage Options【重點】
1、Shared Preferences
Store private primitive data in key-value pairs.
保存簡單的鍵值對數據。
2、Internal Storage
Store private data on the device memory.
在手機內存中保存不對外共享的信息。
3、External Storage
Store public data on the shared external storage.
在外部存儲設備上保存公共的數據信息。主要指保存在SDCard上。
4、SQLite Databases
Store structured data in a private database.
將結構化的數據保存進數據庫。
5、Network Connection
Store data on the web with your own network server.
將數據保存到自己的遠程服務器上。

二、SharedPreferences:
(一)、概念:
    SharedPreferences是Android系統提供的一個通用的數據持久化框架,用於存儲和讀取key-value類型的原始基本數據類型對,目前支持string、int、long、float、boolean等基本類型的存儲,對於自定義的對象數據類型,無法使用SharedPreferences來存儲。
        SharedPreferences主要用於存儲系統的配置信息。例如上次登錄的用戶名,上次最後設置的配置信息(如:是否打開音效、是否使用振動,小遊戲的玩家積分等)。當再次啓動程序後依然保持原有設置。SharedPreferences用鍵值對方式存儲,方便寫入和讀取。

(二)、使用SharedPreferences的步驟:
1、獲取SharedPreferences對象;
        SharedPreferences本身是一個接口,無法直接創建實例,通過Context的getSharedPreferences(String name, int  mode)方法來獲取實例。
        該方法的第二個參數有以下三個值:【文件讀寫的操作模式】
Context.MODE_PRIVATE:  指定該SharedPreferences的數據只能被本應用程序讀、寫;
Context.MODE_APPEND:新內容追加到原內容後;
Context.MODE_WORLD_READABLE:  指定 SharedPreferences數據能被其他應用程序讀,但是不支持寫;
Context.MODE_WORLD_WRITEABLE:  指定 SharedPreferences數據能被其他應用程序讀、寫。會覆蓋原數據。 
可以使用  +  連接這些權限。
2、調用edit()方法獲取SharedPreferences.Editor;
3、通過SharedPreferences.Editor接口提供的put()方法對SharedPreferences進行更新;
4、調用SharedPreferences.Editor的commit()方法,將更新提交到SharedPreferences中。

(三)、核心代碼:
button_main_savedata.setOnClickListener(new View.OnClickListener() {br/>@Override
public void onClick(View v) {
prefs = getSharedPreferences("myaccount", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("age", 38);
editor.putString("username", "wangxiangjun");
editor.putString("pwd", "123456");
editor.putString("username", "xiangjun");
editor.putString("age", "I'm 40 years old!");
editor.commit();
}
});

            button_main_readdata.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                            prefs = getSharedPreferences("myaccount", Context.MODE_PRIVATE);
                            String name = prefs.getString("username", "wxj");
                            String pwd = prefs.getString("pwd", "000");
                            int age = prefs.getInt("age", 20);
                            System.out.println("====>" + name + ":" + pwd + ":" + age);
                    }
            });

(四)、保存之後的SharedPreferences數據文件:
        SharedPreferences數據總是以xml格式保存在:/data/data/包名/shared_prefs目錄下;
例如:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="pwd">123456</string>
    <string name="username">xiangjun</string>
    <int  name="age">20</int>
</map>

(四)、SharedPreferences的設置Setting功能:
1、引入:
移動測試之android緩存的認識

     手機中常有這樣的設置頁面,如果做這樣的頁面呢?是不是需要寫一個複雜的佈局文件,再寫一堆事件監聽來完成呢?

2、PreferenceActivity的簡單用法:
    1)、步驟:
將setting.xml文件放到res的xml目錄下;
將arrays.xml文件放到values目錄下;
寫一個頁面SettingActivity。
移動測試之android緩存的認識

 3)、核心代碼:
//在SettingActivity中。不再需要setContentView(R.layout.activity_main)方法來加載佈局了。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
addPreferencesFromResource(R.xml.setting);
//備註:This method was deprecated in API level 11. This function is not relevant for a modern fragment-based PreferenceActivity.這個方法在11版本以上就已經不推薦使用了。
}

編輯:千鋒軟件測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章