1

アプリを再インストールすると、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();
    }
}
4

2 に答える 2

5

ほとんどの場合、アプリは単に再インストールされています。データを消去するには、アプリを実際にアンインストールする必要があります。再インストールしても、実際にはデータは消去されません。エミュレーターでは、実際には、エミュレーターの実行時にすべてのユーザー データを消去するランタイム オプションを使用できますが、アプリを実行するたびに実行されるとは思えません。Eclipse を使用している場合は、アプリの実行構成でこのオプションを設定できます。

エミュレーター内から行うには、設定->アプリケーション->アプリケーションの管理->アプリ->データの消去に移動します

于 2012-04-17T15:40:59.350 に答える
3

共有設定と sqlite db は、再インストール時に削除されません。それらを削除するには、[設定]--> [アプリケーション]--> [アプリケーションの管理]-->アプリケーションをクリック->エミュレーターの[データの消去]をクリックします。これにより、保存されたデータが消去されます。

于 2012-04-17T15:41:41.453 に答える