重新安装我的应用程序后,尽管我的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();
}
}
答案 0 :(得分:5)
很可能该应用只是重新安装。为了清除数据,实际上必须首先卸载应用程序。重新安装实际上不会清除数据。模拟器实际上允许运行时选项,它将在您运行模拟器时擦除所有用户数据,但我不相信它每次运行应用程序时都会运行。如果您正在使用eclipse,则可以在应用程序的“运行配置”中设置此选项。
要从模拟器内部进行操作,请转到设置 - >应用程序 - >管理应用程序 - >您的应用程序 - >清除数据
答案 1 :(得分:3)
共享首选项和sqlite db在重新安装时不会被删除。要删除它们,请转到设置 - >应用程序 - >管理应用程序 - >单击您的应用程序 - >单击模拟器上的“清除数据”。这将清除存储的数据。