Antwort

1

löschen Daten wird alles löschen, gemeinsame Präferenz, Cache, DB.

Wenn Sie wirklich wollen nur geteilt Präferenz löschen (einige/alle) Sie können es tun programmatisch durch wie diese über Gemeinschafts-Einstellungen Iterieren:

Map<String, ?> allEntries = prefA.getAll(); 
for (Map.Entry<String, ?> entry : allEntries.entrySet()) { 
    Log.i("debug", entry.getKey() + ": " + entry.getValue().toString()); 
    //put delete/edit logic here for some shared preference 
} 

Diese Logik kann auf der Grundlage Ihrer App-Version platziert werden, oder eine andere Logik, wenn der Benutzer sich abmeldet, aber diese Aktion wird nur in Ihrer App ausgeführt.

Ich denke, Android-Anwendungen Einstellungen ermöglicht keine Option, wo Sie nur freigegebene Einstellungen und nicht lokale db löschen können.

3

Daten löschen bedeutet, dass der Benutzer vollständige Daten im Zusammenhang mit der App (sharedpref, cache, db) löschen möchte. Wenn Sie möchten, dass einige Daten intakt bleiben, auch nachdem der Benutzer auf "Daten löschen" geklickt hat, bleiben Sie im Gerätespeicher.

0

Sie können keine ArrayList von Objekten in den gemeinsamen Einstellungen speichern.

Von Android Dokumentation: https://developer.android.com/guide/topics/data/data-storage.html#pref

Die SharedPreferences-Klasse stellt einen allgemeinen Rahmen, der Sie ermöglicht persistent Paare von Schlüssel-Wert-primitive Datentypen zu speichern und abzurufen. Sie können SharedPreferences verwenden, um alle primitiven Daten zu speichern: Booleans, Floats, Ints, Longs und Strings. Diese Daten werden in Benutzersitzungen beibehalten (auch wenn Ihre Anwendung beendet wird).

Die einfachste Lösung wäre, serializable in Ihre Objekte zu implementieren und sie im internen Speicher zu speichern.

https://developer.android.com/guide/topics/data/data-storage.html#filesInternal

+1

Wie gesagt, "Ich sollte diese Liste als String in SharedPreferences speichern oder in der Datenbank behalten." das ist mir ziemlich klar. Du hast geantwortet, was ich nicht gefragt habe –

+0

Sei dankbar, dass sich jemand die Zeit nimmt, dir zu antworten. Hier sagen Sie, dass Sie eine Array-Liste von Objekten intakt erhalten möchten? Wie hilft das Speichern von Strings, um die Objekte intakt zu halten? Stellen Sie Code zur Verfügung, damit wir genau sehen können, was Sie tun und vor allem Ihre Einstellung korrigieren. –

+0

Ich denke, die Frage war ein bisschen irreführend, sorry dafür. Ich habe die Frage bearbeitet. Vielen Dank. –

0

Es gibt eine Option, eine Datenbank in apk directly zu setzen. Natürlich, wenn Sie bereits fertig Datenbank in Ihrem Fall verwenden