1

重新安装我的应用程序后,我的 if 语句中的代码正在被访问,尽管我的 SharedPreferences 条目尚未创建。我正在使用带有 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();
    }
}
4

2 回答 2

5

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

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

于 2012-04-17T15:40:59.350 回答
3

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

于 2012-04-17T15:41:41.453 回答