Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的SharedReferences条目在重新安装时未被清除?_Java_Android_Android Emulator_Sharedpreferences - Fatal编程技术网

Java 为什么我的SharedReferences条目在重新安装时未被清除?

Java 为什么我的SharedReferences条目在重新安装时未被清除?,java,android,android-emulator,sharedpreferences,Java,Android,Android Emulator,Sharedpreferences,在重新安装我的应用程序时,尽管尚未创建我的SharedReferences条目,但正在访问我的if语句中的代码。我正在使用eclipse的模拟器,除了重新安装,是否需要以其他方式清除数据?谢谢 prefs = getSharedPreferences("appData", 0); Gson gson = new Gson(); String gsonStr = prefs.getString("playerString", null); if(g

在重新安装我的应用程序时,尽管尚未创建我的SharedReferences条目,但正在访问我的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();
    }
}

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


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

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



要从emulator内部执行此操作,请转到设置->应用程序->管理应用程序->应用程序->清除共享首选项中的数据,重新安装时不会删除sqlite db。要删除它们,请转到设置-->应用程序-->管理应用程序-->单击应用程序-->单击emulator上的“清除数据”。这将清除存储的数据。

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

哦,等等,你是说在模拟器上。我在看Eclipse,在你的主屏幕上,点击显示应用程序列表的按钮。其中一个是设置。我能看到的选项只有卸载、清除缓存(不可选择)、清除默认值(不可选择)、强制停止。哦,等等,你是说在模拟器上。我在看Eclipse,在你的主屏幕上,点击显示应用程序列表的按钮。其中一个是设置。我能看到的选项只有卸载、清除缓存(不可选择)、清除默认值(不可选择)、强制停止。RunConfigurations>擦除用户数据。如果语句仍让我通过,Ach肯定是另一个该死的选项。您使用的仿真器的api级别是什么?我的代码中没有任何问题。无论我是否将任何玩家保存到savedPlayers ArrayList,调用onPause()时,它都会被添加到SharedReferences。我已经替换了保存的图层=如果savedPlayer.size()>0,则为null。在实际设备上,当应用程序通过应用商店更新时,数据是否会被清除??如果没有,我如何才能在每次更新时清除数据或至少清除首选项文件?RunConfigurations>擦除用户数据完成此任务。Ach必须是其他该死的东西,如果语句仍让我通过。您使用的是什么api级别的模拟器?我的代码中没有任何问题。无论我是否将任何玩家保存到savedPlayers ArrayList,调用onPause()时,它都会被添加到SharedReferences。我已经替换了保存的图层=如果savedPlayer.size()>0,则为null。在实际设备上,当应用程序通过应用商店更新时,数据是否会被清除??如果没有,如何在每次更新时清除数据或至少清除首选项文件?