공유 환경 설정 삭제
응용 프로그램의 SharedPreferences 데이터를 어떻게 삭제합니까?
많은 웹 서비스를 사용하여 데이터를 동기화하는 응용 프로그램을 만들고 있습니다. 테스트 목적으로 앱을 다시 시작할 때 일부 SharedPreferences 값을 지워야합니다.
특정 값을 제거하려면 SharedPreferences.Editor.remove () 다음에commit()
모두 제거하고 SharedPreferences.Editor.clear()
그 뒤에commit()
반환 값에 신경 쓰지 않고 응용 프로그램의 기본 스레드 에서이 값을 사용하는 경우 apply()
대신 사용하십시오.
내 해결책 :
SharedPreferences preferences = getSharedPreferences("Mypref", 0);
preferences.edit().remove("text").commit();
모든 환경 설정 제거 :
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
settings.edit().clear().commit();
단일 환경 설정 제거 :
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
settings.edit().remove("KeyName").commit();
매번 제거 할 필요가없는 경우 다음에서 수동으로 제거 할 수 있습니다.
설정-> 응용 프로그램-> 응용 프로그램 관리-> (앱 선택)-> 데이터 지우기 또는 제거
최신 버전의 Android :
설정-> 응용 프로그램-> (앱 선택)-> 저장소-> 데이터 지우기 및 캐시 지우기
한 줄에 Android 공유 환경 설정 삭제 :-)
context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit();
또는 apply
비 차단 비동기 작업의 경우 :
this.getSharedPreferences("YOUR_PREFS", 0).edit().clear().apply();
모든 솔루션이 완전히 작동하지 않거나 죽었을 것 같습니다
활동에서 모든 SharedPreferences를 지우는 방법
PreferenceManager.getDefaultSharedPreferences(getBaseContext()).
edit().clear().apply();
onCreate 후 기본 활동에서 이것을 호출하십시오.
참고 * 나는 사용했다
.apply()
대신에
.commit()
commit ()을 자유롭게 선택할 수 있습니다.
루팅 된 전화 없이도 adb 셸을 사용하여이 작업을 수행 할 수 있습니다. 유일한 문제점은 앱을 디버깅 할 수 있어야한다는 것입니다.
run-as <your package name> <command>
예를 들면 다음과 같습니다.
run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db
또는 위의 작업을 수행 할 수 있지만 명령없이 앱 패키지 루트로 이동하고 앱의 컨텍스트에서 더 많은 명령을 실행할 수 있습니다.
Editor editor = getSharedPreferences("clear_cache", Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
그들 모두를 지우십시오 :
PreferenceManager.getDefaultSharedPreferences(context).edit().clear().apply()
클래스 정의에서
private static final String PREFERENCES = "shared_prefs";
private static final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(PREFERENCES, MODE_PRIVATE);
수업 내부
public static void deleteAllSharePrefs(){
sharedPreferences.edit().clear().commit();
}
이 코드를 사용해보십시오 :
SharedPreferences sharedPreferences = getSharedPreferences("fake", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.clear().commit();
API 24 (Nougat) 기준으로 다음을 수행 할 수 있습니다.
context.deleteSharedPreferences("YOUR_PREFS");
그러나 이전 버전과의 호환성이 없으므로 24 미만을 지원하는 경우 다음을 준수하십시오.
context.getSharedPreferences("YOUR_PREFS", Context.MODE_PRIVATE).edit().clear().apply();
기기를 사용하여 앱을 수동으로 제거 할 수도 있습니다. 그런 다음 앱을 다시 설치할 때 공유 환경 설정이 재설정되었습니다.
테스트 용인 경우. adb 명령을 사용할 수 있습니다.
adb shell pm clear <package name>
- 특정 값을 제거하려면
SharedPreferences.Editor remove (String key) 다음에 commit () 또는 apply ()
모든 값을 제거하려면
SharedPreferences.Editor clear () 다음에 commit () 또는 apply ()
String prefTag = "someTag";
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(applicationContext);
prefs.edit().remove(prefTag).commit();
이름이 "someTag"인 저장된 공유 환경 설정이 삭제됩니다.
모든 클래스에서 모든 SharedPreference를 중앙에서 지우려면 :
public static SharedPreferences.Editor getEditor(Context context) {
return getPreferences(context).edit();
}
다음 클래스에서 : (환경 설정이 지워 졌는지 여부를 확인할 수있는 경우 부울 커밋을 커밋하십시오)
Navigation.getEditor(this).clear().commit();
또는 : Apply를 사용할 수 있습니다. void Navigation.getEditor (this) .clear (). apply ()를 반환합니다.
기본 설정에서 키 값 쌍을 제거하려면 다음을 쉽게 수행 할 수 있습니다.
getActivity().getSharedPreference().editor().remove("key").apply();
공유 환경 설정을 쉽게 조작 할 수있는 라이브러리도 개발했습니다. 다음 링크를 찾을 수 있습니다
https://github.com/farruhha/SimplePrefs
많은 공유 환경 설정 키가 있기 때문에 답이 없습니다.
단위 테스트 대신 Android 테스트를 실행한다고 가정 해 봅시다.
모든 shared_prefs 파일 을 반복하고 삭제하기 위해 노력하고 있습니다.
@BeforeClass는 모든 테스트 및 ActivityTestRule 전에 실행됩니다.
@BeforeClass
public static void setUp() {
Context context = InstrumentationRegistry.getTargetContext();
File root = context.getFilesDir().getParentFile();
String[] sharedPreferencesFileNames = new File(root, "shared_prefs").list();
for (String fileName : sharedPreferencesFileNames) {
context.getSharedPreferences(fileName.replace(".xml", ""), Context.MODE_PRIVATE).edit().clear().commit();
}
}
new File(context.getFilesDir(), fileName).delete();
공유 환경 설정에서 파일을 삭제할 수 있습니다
use-> preferences.edit().remove("key").commit();
공유 환경 설정에서 저장된 값을 삭제할 수 있습니다 .
오늘 아침에 그냥 했어. 명령 프롬프트에서 :
adb shell
cd /data/data/YOUR_PACKAGE_NAME/shared_prefs
rm * // to remove all shared preference files
rm YOUR_PREFS_NAME.xml // to remove a specific shared preference file
참고 : 기본 Android 가상 기기, Genymotion 기기 또는 실제 루팅 된 핸드셋 / 태블릿 등 루팅 된 기기가 필요합니다.
참고 URL : https://stackoverflow.com/questions/3687315/deleting-shared-preferences
'development' 카테고리의 다른 글
둥근 모서리로 레이아웃을 만드는 방법 ..? (0) | 2020.02.16 |
---|---|
MySQL-SELECT 쿼리 기반 업데이트 쿼리 (0) | 2020.02.16 |
JavaScript에서 숫자를 문자열로 변환하는 가장 좋은 방법은 무엇입니까? (0) | 2020.02.15 |
힘내 체크 아웃 : 경로 업데이트는 분기 스위칭과 호환되지 않습니다 (0) | 2020.02.15 |
C # 배열에 값 추가 (0) | 2020.02.15 |