0

내가 다음과 같습니다 선호 백분율 클래스가 컨텍스트 : 내가 예를 들어, 하나의 컨텍스트 (MainActivity에서 "TOKEN"기본 설정을 제거하려고하면기본 설정은

public class PreferenceUtils { 
    public static SharedPreferences getSharedPreferences(final Context context) { 
     return PreferenceManager.getDefaultSharedPreferences(context); 
    } 

    public static String getToken(final Context context) { 
     SharedPreferences sp = getSharedPreferences(context); 
     return sp.getString("TOKEN", null); 
    } 

    public static void setToken(final Context context, final String token) { 
     SharedPreferences sp = getSharedPreferences(context); 
     sp.edit().putString("TOKEN", token).apply(); 
    } 
} 

문제이며,) :

SharedPreferences prefs = PreferenceUtils.getSharedPreferences(context); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.remove("TOKEN"); 
editor.apply(); 

내가 예를 들어, 다른 컨텍스트 (UserActivity에서 호출 할 경우 여전히 존재).

전체 앱에서 TOKEN 환경 설정을 제거하려면 어떻게해야합니까? Util 클래스에서 환경 설정을 다르게 처리해야합니까?

+0

코드가 정상적으로 보입니다. 신청 대신 커밋을 시도 할 수 있습니까? –

+0

커밋과 동일한 결과입니다. :/ – user651342

답변

0

이 시도 :

editor.putString("TOKEN", ""); 
editor.commit(); 
+0

여전히 다른 컨텍스트에서 잘못된 값을 반환합니다. – user651342

0

이처럼 getSharedPreferences 방법을 수정하십시오 : 당신이 다른 컨텍스트와 공유 환경 설정을 받고 순간

public static SharedPreferences getSharedPreferences(final Context context) { 
    return PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); 
} 

,이 문제의 원인이 될 수 있습니다.