getDefaultSharedPreferences와 getSharedPreferences의 차이
사이의 차이점은 무엇입니까?getDefaultSharedPreferences
그리고.getSharedPreferences
안드로이드에서?누가 설명해 주실 수 있습니까?
getDefaultSharedPreferences
는 m "과 같은 합니다. example와 같은 기본 이름을 사용합니다.뭔가 _ prefe차이"라는 말입니다.getSharedPreferences
이름이 필요합니다.
getDefaultSharedPreferences
실지로Context.getSharedPreferences
(아래는 Android 소스에서 직접 전송됨):
public static SharedPreferences getDefaultSharedPreferences(Context context) {
return context.getSharedPreferences(getDefaultSharedPreferencesName(context),
getDefaultSharedPreferencesMode());
}
private static String getDefaultSharedPreferencesName(Context context) {
return context.getPackageName() + "_preferences";
}
private static int getDefaultSharedPreferencesMode() {
return Context.MODE_PRIVATE;
}
기본적인 차이점을 살펴보도록 하겠습니다.
getDefaultSharedPreferences()
기본 환경설정 파일 이름을 사용합니다.이 기본값은 응용프로그램별로 설정되므로 다음 예제와 같이 동일한 응용프로그램 컨텍스트에 있는 모든 작업에 쉽게 액세스할 수 있습니다.SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this); if (spref.contains("email")) { String sEmailAddr = spref.getString("email", ""); }
기본 설정은 일반적으로 다음 위치에 저장됩니다.
/data/data/com.package.name/shared_prefs/com.package.name_preferences.xml
.대안적인 방법은
getSharedPreferences(name,mode)
특정 기본 설정(파일) 이름과 작업 모드(예: 개인, world_readable 등)를 나타낼 것을 요구합니다.
copolii가 언급한 바와 같이, 결과는 동일하지만 첫 번째 옵션은 더 간단하며 여러 기본 설정 파일로 분할할 수 있는 유연성이 부족합니다. 두 번째 옵션은 다음과 같습니다.getSharedPreferences()
. MODE_WORLD_READABLE 동작 지시자를 사용하여 앱 간의 기본 설정을 공유하는 것도 가능합니다.getSharedPreferences()
, 거의 사용되지 않습니다.
임호,getDefaultSharedPreferences()
앱의 다른 모듈이 다른 기본 설정 파일을 사용하지 않도록 하지 않는 한 오타 및 혼동이 발생하기 쉬운 여러 기본 설정 파일 이름을 혼동하지 않고 안전하게 사용할 수 있습니다.일반적으로 이것은 필요 없습니다.앱이 많은 파라미터를 저장해야 한다면 데이터 보호 기능도 향상되므로 외부 데이터베이스를 사용하는 것이 더 나을 것입니다.
getSharedPreferences()를 정기적으로 사용하고 DefaultSharedPreferences()를 사용하지 않는 좋은 이유를 아는 사람이 있다면 여기에 댓글을 달아 주십시오.
이 게시물이 좀 오래된 것은 알지만, v7 지원 라이브러리의 24.0.1 이후로 어디서든 컨텍스트별로 기본 설정을 검색할 수 있습니다.
// context might be an application context, activity, ..
// so if you want to get your apps defaults, pass an activity context
PreferenceManager.getDefaultSharedPreferences(context)
https://developer.android.com/reference/android/support/v7/preference/PreferenceManager#getdefaultsharedpreferences 참조
기본 공유 환경설정을 사용하는 것은 패키지 이름과 함께 공유 환경설정을 사용하는 것과 같지 않습니다.
context.getSharedPreferences(getPackageName(), MODE_PRIVATE);
=> 공유 선호도 이름 : "com.my .package name"
PreferenceManager.getDefaultSharedPreferences(context);
=> 공유 선호도 이름 : "com.my .packaguename_prefeents"
세 번째 기능도 있습니다.
public SharedPreferences Activity.getPreferences(int mode) {}
여기서 내 질문과 답변 보기: 안드로이드의 공유 선호도를 엉망으로 만들기 - 어떤 기능을 사용할 것인가?
getSharedPreferences()와 getDefaultSharedPreferences()는 모두 응용프로그램 수준의 환경설정에 액세스하는 데 사용됩니다.getDefaultSharedPreferences()는 Android의 전체 환경설정 프레임워크에 따라 작동하는 공유 환경설정을 얻는 데 사용됩니다.getDefaultSharedPreferences()는 기본적으로 Preferences Activity와 함께 작동하는 SharedPreferences 개체를 제공하므로 사용하는 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/5946135/difference-between-getdefaultsharedpreferences-and-getsharedpreferences
'programing' 카테고리의 다른 글
요청이 ajax인지 아닌지 확인하는 방법 뒤의 코드 - ASPNET 웹폼 (0) | 2023.10.29 |
---|---|
PHP 스크립트로 멀티사이트에서 새로운 사이트를 동적으로 만드는 방법은? (0) | 2023.10.29 |
자바스크립트에서 이것과 self의 차이점 (0) | 2023.10.29 |
정점 배열 객체 이해(glGenVertexArrays) (0) | 2023.10.29 |
C 표준 라이브러리의 기능을 C++에서 사용할 수 있습니까? (0) | 2023.10.24 |