2011-09-01 62 views
1

我想刪除sharedPreference細節的應用;我不喜歡這樣,但不工作:SharedPreference刪除,當我們退出

SharedPreferences myRoutes = this.getSharedPreferences("myDefalutRoute", MODE_PRIVATE); 
public void onExitAction(View botton){ 
    Intent startMain = new Intent(Intent.ACTION_MAIN); 
    startMain.addCategory(Intent.CATEGORY_HOME); 
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(startMain); 
    finish();  

    SharedPreferences myPrefs = this.getSharedPreferences("myLogedPrefs",MODE_WORLD_READABLE); 
    myPrefs.edit().remove("myLogedPrefs"); 
    myPrefs.edit().clear(); 
    myPrefs.edit().commit(); 

    myRoutes.edit().remove("myDefalutRoute"); 
    myRoutes.edit().clear(); 
    myRoutes.edit().commit(); 

    moveTaskToBack(true); 

} 

退出後應用&到數據\數據\包\ myLogedPrefs.xml包含值。

如何刪除SharedPreferences數據?

請幫我..

在此先感謝;

回答

2

你確定onExitAction()被調用嗎?你從哪裏來的。放入一些日誌記錄以確保它被調用。正如J_Andr所提到的,您可能想要移動此代碼或從應用程序的初始Activity的onDestroy方法中調用該函數。

+0

感謝您的幫助。我應該在初始頁onDestroy()嗎? – Piraba

+0

是 - 您在清單中定義的主要活動。 – SBerg413

1

嘗試將這些刪除命令放入onDestroy()。

2
@override 
public void onDestroy() 
{ 
    super.onDestroy(); 
    SharedPreferences myPrefs = this.getSharedPreferences("myfile",MODE_WORLD_READABLE); 
    myPrefs.edit().remove("myfile"); 
    myPrefs.edit().clear(); 
    myPrefs.edit().commit();  
} 
相關問題