修改默認(rèn)SharedPreference默認(rèn)路徑到內(nèi)存卡

要在第一次試用SharedPreference之前調(diào)用

在實(shí)際的開發(fā)過程中,經(jīng)常需要將配置文件保存到SharedPreference中,且在應(yīng)用卸載重裝后配置文件不會(huì)丟掉。默認(rèn)的SharedPreference位于app的shraredPref文件夾下,應(yīng)用卸載后就被刪除了,那么只有改變SharedPreference的位置了,代碼:

private void changeSPLocation() {
        try {
            Field field;
            // 獲取ContextWrapper對(duì)象中的mBase變量。該變量保存了ContextImpl對(duì)象
            field = ContextWrapper.class.getDeclaredField("mBase");
            field.setAccessible(true);
            // 獲取mBase變量
            Object obj = field.get(this);
            // 獲取ContextImpl。mPreferencesDir變量,該變量保存了數(shù)據(jù)文件的保存路徑
            field = obj.getClass().getDeclaredField("mPreferencesDir");
            field.setAccessible(true);
            // 創(chuàng)建自定義路徑
            File file = new File(android.os.Environment.getExternalStorageDirectory().getPath());
            // 修改mPreferencesDir變量的值
            field.set(obj, file);
        } catch (NoSuchFieldException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

在Application初始化時(shí)調(diào)用該方法即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評(píng)論 6 342
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評(píng)論 25 709
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 100,677評(píng)論 9 468
  • 不知你是否還記得我, 在每個(gè)早起的清晨, 或是即將沉睡的夜晚。 不知你是否還記得我, 在喧鬧的人群中, 還是面對(duì)自...
    大嘴巴蝸牛閱讀 391評(píng)論 0 1

友情鏈接更多精彩內(nèi)容