重新安装我的应用程序时,尽管我的共享首选项条目尚未创建,但仍可以访问我的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();
}
}
很可能只是重新安装了该应用程序。为了清除数据,实际上必须先卸载该应用程序。重新安装实际上不会清除数据。模拟器实际上允许一个运行时选项,该选项将在您运行模拟器时擦除所有用户数据,但我不相信它每次运行应用程序时都会运行。如果您使用的是 eclipse,则可以在应用程序的运行配置中设置此选项。
若要从模拟器内部执行此操作,请转到设置->应用程序->管理应用程序->你的应用>-清除数据
共享首选项和 sqlite db 不会在重新安装时被删除。要删除它们,请转到设置-->应用程序-->管理应用程序-->单击您的应用程序-->单击模拟器上的"清除数据"。这将清除存储的数据。