为什么我的SharedPreferences条目在重新安装时没有被清除?

时间:2012-04-17 15:37:00

标签: java android android-emulator sharedpreferences

重新安装我的应用程序后,尽管我的SharedPreferences条目尚未创建,但仍在访问我的if语句中的代码。我正在使用带有eclipse的模拟器,是否需要以重新安装的方式清除数据?感谢

prefs = getSharedPreferences("appData", 0);
        Gson gson = new Gson();
        String gsonStr = prefs.getString("playerString", null);

        if(gsonStr != null)
        {
            //This code is being accessed on the apps first onCreate() call prior to being reinstalled 
            Player[] tempArray = gson.fromJson(gsonStr, Player[].class);
            Log.d("First Player", "" + tempArray[0]);
        }

protected void onPause() 
{
    super.onPause();
    if(savedPlayers != null)
    {
        Gson gson = new Gson();
        String gsonStr = gson.toJson(savedPlayers.toArray());

        prefs = getSharedPreferences("appData", 0);
        SharedPreferences.Editor editor = prefs.edit();
        //editor().clear();
        Log.d("GSONString",gson.toString());
        editor.putString("playerString", gsonStr);
        editor.putInt("ArraySize", savedPlayers.size());
        editor.commit();
    }
}

2 个答案:

答案 0 :(得分:5)

很可能该应用只是重新安装。为了清除数据,实际上必须首先卸载应用程序。重新安装实际上不会清除数据。模拟器实际上允许运行时选项,它将在您运行模拟器时擦除所有用户数据,但我不相信它每次运行应用程序时都会运行。如果您正在使用eclipse,则可以在应用程序的“运行配置”中设置此选项。

要从模拟器内部进行操作,请转到设置 - >应用程序 - >管理应用程序 - >您的应用程序 - >清除数据

答案 1 :(得分:3)

共享首选项和sqlite db在重新安装时不会被删除。要删除它们,请转到设置 - >应用程序 - >管理应用程序 - >单击您的应用程序 - >单击模拟器上的“清除数据”。这将清除存储的数据。