2012-04-17 68 views
1

重新安裝我的應用程序後,我的if語句中的代碼正在被訪問,儘管我的SharedPreferences條目尚未創建。我在eclipse中使用模擬器,數據是否需要重新安裝而不是重新安裝?謝謝爲什麼我的SharedPreferences條目在重新安裝後沒有被清除?

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(); 
    } 
} 

回答

5

最有可能的應用程序只是被重新安裝。爲了清除數據,應用程序實際上必須首先被卸載。重新安裝不會真正清除數據。模擬器實際上允許一個運行時選項,它會在運行模擬器時擦除所有用戶數據,但我不相信每次運行應用程序時都會運行該選項。如果您使用的是Eclipse,您可以在應用程序的「運行配置」中設置此選項。

要從仿真器內部做到這一點,去設置 - >應用程序 - >管理應用程序 - >您APP->清除數據

+0

運行配置>擦除用戶數據完成這項工作。 – Deco 2012-04-17 17:56:35

+0

如果陳述仍然讓我過去,那麼Ach一定是別的東西。 – Deco 2012-04-17 18:16:28

+0

你使用的是什麼api級別的模擬器? – ootinii 2012-04-17 18:23:11

3

共享偏好和SQLite數據庫犯規得到上重新安裝刪除。要刪除它們,請轉到設置 - >應用程序 - >管理應用程序 - >單擊您的應用程序 - >在仿真器上單擊「清除數據」。這將清除存儲的數據。

+0

我在哪裏可以找到設置? – Deco 2012-04-17 15:45:04

+0

哦,等待你在模擬器上的意思。我在看Eclipse。 – Deco 2012-04-17 15:47:29

+0

在您的主屏幕上,單擊顯示您應用程序列表的按鈕。其中之一是設置 – Akhil 2012-04-17 15:48:43

相關問題