我正在创建一个小部件,其中每个小部件实例将具有其自己的命名的SharedPreferences文件。我想在用户删除窗口小部件时删除该文件(不只是清除首选项),所以随着时间的流逝,不会出现一堆堆旧的,空的,无用的文件。
删除小部件时,我正在使用的代码可以很好地清除文件,但是实际上并没有删除它。有人可以看到原因吗?
@Override
public void onDeleted( Context context, int[] appWidgetIds )
{
super.onDeleted( context, appWidgetIds );
/* Delete the SharedPreferences associated with the deleted widget */
for( int id : appWidgetIds )
{
File dir = new File( context.getFilesDir().getParent() + "/shared_prefs" );
String filename = ConfigurationActivity.getSharedPreferencesFileName( id );
SharedPreferences prefs = context.getSharedPreferences( filename, Context.MODE_PRIVATE );
prefs.edit().clear().commit();
new File( dir, filename ).delete();
}
}