반응형
앱을 사용하다보면 앱이 갑자기 중지되거나 다시 화면에 나타날 때가 있는데, 이럴 때에 앱의 현재 상태 정보가 저장
되고 복원되는 것은 상당히 중요하다. 예를 들어, 게임을 할 때 개인 점수 기록을 세웠다든지, 그 외 다른 앱을 사용할 때중요한 정보를 입력해 놓았을 때라든지 데이터를 저장해 놓지 않으면 앱을 다시 실행할 때 처음부터 다시해야하는 번거로움이 있게 된다.
보통 대량의 데이터를 저장할 때에는 데이터베이스를 사용하지만, 앱 안에서 간단한 데이터를 저장하거나 복원할
때에는 'SharedPreferences' 를 사용할 수 있는데, 이 'SharedPreferences'는 앱 내부에 파일을 하나 만들고 이 파일
안에서 데이터를 저장하고 읽어올 수 있다.
그렇다면 이 'SharedPreferences'는 어떻게 사용을 할까?
이번 시간에는 예제로 앱이 종료될 때(onDestroy()) 데이터를 저장하고, 앱을 다시 실행시킬 때(onCreate())
저장된 데이터를 불러오는 간단한 코드를 작성해볼 것이다.
먼저 화면에 TextView를 하나만 놓고 액티비티 코드를 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public class MainActivity extends AppCompatActivity {
TextView textView;
String recordFile = "file";
@Override
protected void onCreate(Bundle savedInstanceState) { // 앱이 실행되면서 저장된 데이터를 불러옴
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
SharedPreferences sharedPreferences = getSharedPreferences(recordFile, Activity.MODE_PRIVATE);
String record = sharedPreferences.getString("record", "");
textView.setText(record);
}
@Override
protected void onDestroy() { // 앱이 중지가 되면서 데이터가 저장이됨
super.onDestroy();
SharedPreferences sharedPreferences = getSharedPreferences(recordFile, Activity.MODE_PRIVATE); // 데이터 저장소에 데이터를 저장하는 객체
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("record", textView.getText().toString()); // 저장하려는 데이터 설정
editor.commit(); // 실제로 저장
}
}
|
cs |
위와 같이 약간의 SharedPreferences 코드 추가로 앱을 껐다가 다시 실행시켜도 데이터들이 사라지지 않고 그대로 사용할 수 있게 된다.
피드백은 언제나 환영입니다.
반응형
'프로그래밍(programming) > 안드로이드(android)' 카테고리의 다른 글
[210618] 안드로이드 Parcelable 로 데이터 전달하기 (3) | 2021.06.18 |
---|---|
[210615] 안드로이드 스플래시 화면(Splash Screen) / 테마(Theme) (0) | 2021.06.15 |
[210601] 안드로이드 리사이클러뷰 역순 출력 (0) | 2021.06.01 |
[210529] 안드로이드 옵션 메뉴(Option Menu) (0) | 2021.05.29 |
[210524] 안드로이드 방송 수신자 / 브로드 캐스트 리시버(Brodcast Receiver) - SMS 문자 받아서 출력 (0) | 2021.05.24 |