본문 바로가기

Programing (프로그래밍)/Android Studio (안드로이드 스튜디오)

안드로이드스튜디오 저장/불러오기 ( SharedPreferences 생명주기 onPause onCreate )

728x90
반응형

SaveExample.z01
10.00MB
SaveExample.zip
5.01MB
app-debug.apk
6.64MB

 

activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
 
    <EditText
        android:id="@+id/edt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
 
</LinearLayout>
cs

 

Mainactivity.java

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
30
31
32
33
34
35
36
37
package com.example.saveexample;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.ShareActionProvider;
 
public class MainActivity extends AppCompatActivity {
 
    EditText edt;
    String shared = "file";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        edt = (EditText) findViewById(R.id.edt);
 
        SharedPreferences sharedPreferences = getSharedPreferences(shared,0);
        String value = sharedPreferences.getString("ung","");
        edt.setText(value);
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        
        SharedPreferences sharedPreferences = getSharedPreferences(shared, 0);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        String value = edt.getText().toString();
        editor.putString("ung", value);
        editor.commit();
    }
}
cs

안드로이드에는 생명주기 라는것이 있다.

나도 잘 모른다.

다만 앱의 생성 에서부터 소멸 까지 기준이있는데 그 기준중에 데이터를 어느 타이밍에 저장하고 불러올지가 중요하다.

나는 onCreate 에 불러오고, onPause 에 저장하는것으로 기준을 삼았는데 가장 잘 되는 듯 하다.

 

생명주기에 대해서는 아래 이미지를 참고하자.

 

https://insurang.tistory.com/135

 

[안드로이드 스튜디오] - 액티비티 생명주기

[안드로이드 스튜디오] - 액티비티 생명주기 # Activity 생성과 소멸  @ 액티비티 생성과 소멸 Activity 는 화면에 보여지기 위해 생성/소멸되는 가장 기본적인 단위이다. 프로그램 짤때에 가장 기본

insurang.tistory.com

 

728x90
반응형