Question

Je peux créer un nouveau fichier de préférences en appelant Context.getSharedPreferences (String name, int mode) , mettre des valeurs dans l'éditeur des préférences de retour, et l'engagement. Cependant, je ne vois pas d'interface dans l'API pour supprimer le fichier créé quand je ne plus besoin. J'ai essayé Context.deleteFile (String nom) , en passant dans le même argument name d'en haut, mais que les rendements false, indiquant que le fichier n'a pas été réellement supprimé. J'utilise MODE_PRIVATE, si cela fait une différence.

Parcourir la source la mise en œuvre du contexte de l'éditeur ne révèle aucun indice non plus, pour autant que je peux dire.

Toutes les idées? Le fond est là que je me permet aux utilisateurs d'enregistrer des copies de leurs préférences « actuelles » afin qu'ils puissent restaurer les paramètres précédemment enregistrés. Quand ils ne veulent pas que ces paramètres plus, je veux supprimer le fichier de préférences enregistrées il ne prend pas de place. En ce moment le meilleur que je peux faire est un edit().clear().commit sur le fichier, qui, je crois enlever la majeure partie du contenu. Pas aussi bon que supprimer, cependant.

Était-ce utile?

La solution

  

J'ai essayé Context.deleteFile (String name), en passant dans le même argument nom ci-dessus, mais que renvoie false, indiquant que le fichier n'a pas été effectivement supprimé.

C'est parce que le fichier n'est pas dans ce répertoire.

  

Le fond est là que je me permet aux utilisateurs d'enregistrer des copies de leurs préférences afin qu'ils puissent restaurer les paramètres précédemment enregistrés « en cours ».

Comment faites-vous la copie?

Du point de vue des API prises en charge, vous êtes mieux servis en faisant le vrai SharedPreferences être les paramètres actifs actuels, et faire vos sauvegardes et des restaurations à votre propre format de fichier dans votre répertoire.

Si vous êtes peu enclin à aller dans cette direction, le fichier sera un fichier XML dans le répertoire ../shared_prefs par rapport à getFilesDir(), de sorte que vous pouvez construire un objet de fichier approprié et le supprimer de cette façon. Cependant, gardez à l'esprit que Android pourrait éventuellement changer ce lieu plus tard, ou même changer le modèle de stockage, et donc vous pouvez rencontrer des problèmes de compatibilité dans le futur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top