[android] SharedPreferences에서 일부 키 / 값 쌍을 제거하는 방법은 무엇입니까?

SharedPreferences에서 일부 키 / 값 쌍을 제거하는 방법은 무엇입니까? 나는 그것을 넣고 prefs에서 제거합니다.



답변

SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(key);
editor.apply();

여기 편집기는 sharedPreferences 편집기입니다.


답변

commit () 호출의 반환 값으로 무언가를 할 계획이 없다면 비동기 apply () 호출 대신 동기 commit () 호출을 사용할 이유가 전혀 없다는 점에 유의해야합니다.

main / UI 스레드에서 이것을 호출하는 경우 commit ()이 완료 될 때까지 UI가 차단된다는 점에 유의하십시오. 적용시 약 5ms에 비해 약 100ms 이상 걸릴 수 있습니다. 그다지 많지 않은 것 같지만 응용 프로그램 전체에서 계속 수행하면 확실히 합산됩니다.

따라서 이와 같은 작업을 계획하지 않는 한 별도의 스레드에서 수행 할 수 있습니다.

editor.remove(String key);
boolean success = editor.commit();
if (!success) {
    // do something 
}

대신 다음을 수행해야합니다.

editor.remove(String key);
editor.apply();


답변

SharedPreferences.Editor.remove(key)
commit();


답변

매우 간단합니다.

private SharedPreferences sharedPreferences() {
    return PreferenceManager.getDefaultSharedPreferences(mContext);
}

public void clearSharedPreferences() {
    sharedPreferences()
            .edit()
            .remove(SOME_KEY_1)
            .remove(SOME_KEY_2)
            .remove(SOME_KEY_3)
            .apply();
}


답변

이 문제를 해결 한 방법은 다음과 같습니다.

먼저 SharedPreference의 인스턴스를 다음과 같이 만들었습니다.

SharedPreferences mobilePreference;

그런 다음이 sharedPreference를 다음과 같이 사용했습니다.

mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);

여기에서 “in.bhartisoftwares.amit.allamitappsthree”는 내 패키지 이름이고 Context.MODE_PRIVATE를 사용하고 있습니다.이 패키지 이름에 대해서만이 공유 기본 설정을 조작하려고하기 때문입니다.

그런 다음 선택한 sharedPreference (내 sharedPreference의 키는 mobileString)를 다음과 같이 삭제합니다.

mobilePreference.edit().remove("mobileString").commit();

아래 전체 코드를 참조하십시오.

SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
    mobilePreference.edit().remove("mobileString").commit();


답변

정보

체크 sharedpref클래스가 확장 Map되었기 때문에 remove메서드가 있습니다.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.remove(String key);
editor.apply();

여기 편집기는 sharedPreferences 편집기입니다.


답변