Domanda

I in grado di creare un nuovo file delle preferenze chiamando Context.getSharedPreferences (nome String, modalità int) , mettendo alcuni valori in editor di preferenze restituiti, e commettendo. Tuttavia, non vedo l'interfaccia nelle API per rimuovere il file creato quando non ho più bisogno. Ho provato Context.deleteFile (String nome) , passando lo stesso argomento name dall'alto, ma che i rendimenti false, che indica che il file non è stato effettivamente cancellato. Sto utilizzando MODE_PRIVATE, se questo fa la differenza.

Navigando in origine per implementazione del contesto l'editor non rivela alcun indizio né, per quanto posso dire.

Tutte le idee? Lo sfondo è che sto permettendo ai miei utenti di salvare le copie dei loro preferenze "correnti" in modo che possano ripristinare le impostazioni precedentemente salvate. Quando non vogliono più tali impostazioni, voglio rimuovere il file di preferenze salvato in modo che non occupa spazio. Al momento il meglio che posso fare è un edit().clear().commit sul file, che credo rimuovere la maggior parte dei contenuti. Non buono come eliminazione, però.

È stato utile?

Soluzione

  

Ho provato Context.deleteFile (String name), passando lo stesso argomento nome dall'alto, ma che restituisce false, che indica il file non era in realtà cancellato.

Ecco perché il file non è in quella directory.

  

Lo sfondo è che sto permettendo ai miei utenti di salvare le copie dei loro preferenze "correnti" in modo che possano ripristinare le impostazioni precedentemente salvate.

Come si stanno facendo la copia?

Dal punto di vista di API supportati, si sono meglio serviti rendendo il vero SharedPreferences sia le impostazioni correntemente attive, e fare i backup e ripristini al proprio formato file nella propria directory.

Se siete poco inclini ad andare in quella direzione, il file sarà un file XML nella directory ../shared_prefs rispetto al getFilesDir(), in modo da poter costruire un oggetto file appropriato e eliminare in questo modo. Tuttavia, tenere a mente che Android, concettualmente, potrebbe modificare questa posizione in seguito, o anche cambiare il modello di archiviazione, e così si può incorrere in problemi di compatibilità in futuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top