Android 共享首选项分配不会在模拟器会话之间持续存在

Rob*_*ler 5 xml android commit emulation sharedpreferences

我正在使用以下代码将数据保存到我的 Android 应用程序的共享首选项:

    private SharedPreferences getOurSharedPreferences() {
        return getSharedPreferences(SHARED_PREFS_FILENAME, MODE_PRIVATE);
    }       

    SharedPreferences sharedPrefs = getOurSharedPreferences();
    SharedPreferences.Editor editor = sharedPrefs.edit();
    editor.putString(keyName, theString);
    if (!editor.commit()) 
        throw new RuntimeException("Unable to save new string.");

    // Get it back as a test.
    String s2 = getStringFromStorage(keyName);
Run Code Online (Sandbox Code Playgroud)

其中 SHARED_PREFS_FILENAME 是私有的最终静态字符串,keyName 是我当前用作字段名称的任何键的名称。提交工作正常,我没有例外。如您所见,我添加了一个测试来检索最近提交的字符串,当我检查它 (s2) 时,该值很好。因此,在我的应用程序的生命周期内,共享首选项存储没有任何问题。但是,当我在模拟器中重新启动应用程序时,共享首选项存储区域是空的,我找不到我在上次模拟器会话中存储的值。我做了一些阅读,据我所知,存储的值应该跨会话持续存在,显然它们保存在属于模拟器的 XML 文件中。然而我遇到了问题。

谁能告诉我为什么我的共享首选项存储值在 Android 模拟器会话之间不存在?

——罗什克莱尔

Dan*_*Dan 0

在调试配置对话框窗口的“目标”选项卡上,是否勾选了“擦除用户数据”?