티스토리 뷰

onPause : 화면이 눈에서 보이지 않게 될 때 항상 호출되므로 이때 데이터 저장해두기 가능

onResume: 화면이 다시 보일 때 항상 호출되므로 저장해 둔 데이터 가져와 화면에 설정하기 가능

package com.example.mycycle;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toast.makeText(getApplicationContext(), "onCreate() 호출됨",Toast.LENGTH_LONG).show();

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();

        Toast.makeText(getApplicationContext(), "onStart() 호출됨",Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onStop() {
        super.onStop();
        Toast.makeText(getApplicationContext(), "onStop() 호출됨",Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onPause() {
        super.onPause();
        Toast.makeText(getApplicationContext(), "onPause() 호출됨",Toast.LENGTH_LONG).show();

        SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString("name","안드");
        editor.commit();
    }

    @Override
    protected void onResume() {
        super.onResume();
        Toast.makeText(getApplicationContext(), "onResume() 호출됨",Toast.LENGTH_LONG).show();
        SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
        if(pref!=null){
            String name = pref.getString("name","");
            Toast.makeText(getApplicationContext(), "복구된 이름 : "+name,Toast.LENGTH_LONG).show();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Toast.makeText(getApplicationContext(), "onDestroy() 호출됨",Toast.LENGTH_LONG).show();
    }
}

 

위 예시에서는 onPause() 할 때 SharedPreferences로 데이터를 저장해뒀다.

데이터 저장할 때 (key로 put)만 editor를 열면 되고

단순히 key로 get 할 때는 editor 필요 없음에 주의

'Android' 카테고리의 다른 글

프래그먼트 예시  (0) 2020.04.22
서비스 예시  (0) 2020.04.01
전화 걸기 연결 (+ 액티비티 구성 과정, 인텐트)  (0) 2020.04.01
스피너 spinner 예시  (0) 2020.03.29
리스트뷰, 그리드뷰 예시  (0) 2020.03.26
댓글