2011-09-01 61 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();  
} 
相关问题