Jak usunąć dane SharedPreferences dla mojej aplikacji?
Tworzę aplikację, która korzysta z wielu usług internetowych do synchronizacji danych. Do celów testowych muszę wymazać niektóre wartości SharedPreferences po ponownym uruchomieniu aplikacji.
android
sharedpreferences
Andrzej
źródło
źródło
Moje rozwiązanie:
źródło
"text"
.Usuwanie wszystkich preferencji:
Usuwanie pojedynczej preferencji:
źródło
KeyName
?Jeśli nie trzeba go usuwać za każdym razem, możesz usunąć go ręcznie z:
Nowsze wersje Androida:
źródło
Usuwanie wspólnych preferencji Androida w jednym wierszu :-)
Lub
apply
w przypadku nieblokującej operacji asynchronicznej:źródło
Wydaje się, że wszystkie rozwiązania nie działają całkowicie lub są całkowicie martwe
aby wyczyścić wszystkie SharedPreferences w działaniu
Zadzwoń do tego z głównej aktywności po utworzeniu usługi onCreate
uwaga * użyłem
.apply()
zamiast.commit()
, możesz wybrać commit ();źródło
Możesz użyć powłoki adb, aby to zrobić nawet bez zrootowanego telefonu. Jedynym haczykiem jest to, że aplikacja musi być debuggowana.
Na przykład:
Alternatywnie możesz po prostu zrobić powyższe, ale bez polecenia, które przekieruje Cię do katalogu głównego pakietu aplikacji i pozwoli ci wykonać więcej poleceń w kontekście aplikacji.
źródło
run-as
. Można by pomyśleć, że znalazłbym to po 3 latach ...źródło
Od API 24 (Nougat) możesz po prostu:
Jednak nie ma kompatybilności wstecznej, więc jeśli wspierasz coś mniej niż 24, trzymaj się:
źródło
Wyczyść je wszystkie:
źródło
Możesz także ręcznie odinstalować aplikację za pomocą urządzenia. Po ponownym zainstalowaniu aplikacji preferencje udostępnione zostały zresetowane.
źródło
W definicjach klas:
Wewnątrz klasy:
źródło
Wypróbuj ten kod:
źródło
Jeśli to do testowania. Możesz użyć poleceń adb.
źródło
Spowoduje to usunięcie zapisanych wspólnych preferencji o nazwie „someTag”.
źródło
SharedPreferences.Editor remove (String string), a następnie commit () lub apply ()
Aby usunąć wszystkie wartości,
SharedPreferences.Editor clear (), po której następuje commit () lub apply ()
źródło
Aby usunąć pary klucz-wartość z preferencji, możesz łatwo wykonać następujące czynności
Opracowałem również bibliotekę do łatwej manipulacji wspólnymi preferencjami. Możesz znaleźć następujący link
https://github.com/farruhha/SimplePrefs
źródło
Aby wyczyścić wszystkie SharedPreferences centralnie z dowolnej klasy:
A następnie z dowolnej klasy: (commit zwraca wartość logiczną, gdzie możesz sprawdzić, czy Preferencje zostały wyczyszczone)
Lub możesz użyć zastosowania; zwraca pustkę
źródło
Mogę z nim usunąć plik w preferencjach udostępnionych
źródło
Żadna z odpowiedzi nie działa dla mnie, ponieważ mam wiele wspólnych kluczy preferencji.
Załóżmy, że przeprowadzasz test systemu Android zamiast testu jednostkowego.
Działa dla mnie pętla i usuwanie przez wszystkie pliki shared_prefs .
źródło
Sposób Kotlin ktx, aby wyczyścić wszystkie preferencje:
Kliknij tutaj, aby wyświetlić wszystkie operacje na preferencjach współdzielonych z przykładami
źródło
Możesz użyć
preferences.edit().remove("key").commit()
do usunięcia zapisanych wartości z wspólnych preferencji.źródło
Właśnie to zrobiłem dziś rano. Z wiersza polecenia:
UWAGA : Wymaga to zrootowanego urządzenia, takiego jak standardowe urządzenia wirtualne z Androidem, urządzenie Genymotion lub rzeczywisty zrootowany telefon / tablet itp.
źródło
/data/data
bezpośredni dostęp !su
później,adb shell
aby otworzyć uprzywilejowaną powłokę.