on
[Android] SharedPreferences- 공유 환경설정- 데이터 저장 1편
[Android] SharedPreferences- 공유 환경설정- 데이터 저장 1편
1. 목적:
간단하게 어플리케이션 내에서 데이터를 저장하여 활용할 필요가 있다.
저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences API를 사용해야 합니다
참고: SharedPreferences API는 키-값 쌍을 읽고 쓰는데 사용되며 앱 설정을 위한 사용자 인터페이스 빌드를 지원하는 Preference API와 혼동해서는 안 됩니다(Preference API도 사용자의 설정을 저장하는 데 SharedPreferences를 사용하긴 함). Preference API에 관한 자세한 내용은 설정 개발자 가이드를 참조하세요.
공유 환경설정의 핸들 가져오기
다음 메서드 중 하나를 호출하여 새로운 공유 환경설정 파일을 생성하거나 기존 파일에 액세스할 수 있습니다.
getSharedPreferences() — 첫 번째 매개변수로 지정하는 이름으로 식별되는 여러 공유 환경설정 파일이 필요한 경우 이 메서드를 사용합니다. 앱의 모든 Context에서 이 메서드를 호출할 수 있습니다.
— 첫 번째 매개변수로 지정하는 이름으로 식별되는 여러 공유 환경설정 파일이 필요한 경우 이 메서드를 사용합니다. 앱의 모든 Context에서 이 메서드를 호출할 수 있습니다. getPreferences() — 활동에 하나의 공유 환경설정 파일만 사용해야 하는 경우 Activity에서 이 메서드를 사용합니다. 이 메서드는 활동에 속한 기본 공유 환경설정 파일을 검색하기 때문에 이름을 제공할 필요가 없습니다.
2. 방법:
MySharedPreferences.java
import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; public class MySharedPreferences { public static String getString(Activity act, String key , String defalut){ SharedPreferences sharedPref = act.getPreferences(Context.MODE_PRIVATE); String defaultValue = defalut; return sharedPref.getString(key, defaultValue); } public static Boolean putString(Activity act, String key, String value){ SharedPreferences sharedPref = act.getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putString(key, value); return editor.commit(); } //참고 자료: https://developer.android.com/training/data-storage/shared-preferences?hl=ko }
MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import com.example.mydatabaseapplication.data.MySharedPreferences; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String FIRST_KEY="FIRST_KEY"; Boolean isCommit = MySharedPreferences.putString(this, FIRST_KEY, "myValue"); Log.i("TAG","isCommit: "+isCommit); String resutl = MySharedPreferences.getString(this, FIRST_KEY,"empty"); Log.i("TAG","resutl: "+ resutl); } }
결과
* 참고자료:
[1] , https://developer.android.com/training/data-storage/shared-preferences?hl=ko
* 질문?
getSharedPreferences() 와 getPreferences() 의 차이를 잘 모르겠음.
->단순히 context를 사용하느냐, Activity를 사용하느냐의 차이가 있다.
-> getPreferences는 Activity를 사용하기 때문에 해당하는 Activity에서만 데이터를 읽을수 있어, 앱내의 다른 엑티비티에서 데이터를 읽을수 없다.
->앱내의 모든 context에서 데이터를 읽기 위해서는 getSharedPreferences()를 사용해야 한다.
from http://helloit.tistory.com/316 by ccl(A) rewrite - 2021-09-16 18:01:39