[안드로이드]/[안드로이드] 공부 기록
[안드로이드] 수명주기/생명주기 (LifeCycle), getSharedPreferences()
노트포미
2023. 10. 13. 03:40
생명주기(=수명주기)
액티비티는 시스템에 의해 정지, 종료될 수 있음
<=> 액티비티의 생명주기가 있음
- 생명주기 메소드는 자동으로 호출된다
[생명주기 대표 메소드]
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onDestroy()
-> 각 메소드에 원하는 코드를 작성하면 됨
[사용법 - SharedPreferences 사용]
1. onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()를 오버라이드 한다
2. onCreate()에서는 버튼을 누르면 액티비티 종료하게 코드 작성
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
3. onPause()가 실행될 때, SharedPreferences를 이용해서 정보를 저장함
@Override
protected void onPause() {
super.onPause();
Toast.makeText(getApplicationContext(),"onPause() 호출됨",Toast.LENGTH_SHORT).show();
//액티비티를 정지할 때, 정보를 저장하는 SharedPreferences
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("name","김철수");
editor.commit();
}
4. onResume()이 실행될 때, SharedPreferences의 정보를 가져옴
@Override
protected void onResume() {
super.onResume();
Toast.makeText(getApplicationContext(),"onResume() 호출됨",Toast.LENGTH_SHORT).show();
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
if(pref != null){
//첫 인자 : 키값, 두번째 인자 : 만약 빈칸인 경우 출력할 문자열
String name = pref.getString("name","");
Toast.makeText(getApplicationContext(),"name : "+name,Toast.LENGTH_LONG).show();
}
}
#전체 MainActivity.java
package com.example.mylifecycle;
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_SHORT).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_SHORT).show();
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(getApplicationContext(),"onResume() 호출됨",Toast.LENGTH_SHORT).show();
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
if(pref != null){
//첫 인자 : 키값, 두번째 인자 : 만약 빈칸인 경우 출력할 문자열
String name = pref.getString("name","");
Toast.makeText(getApplicationContext(),"name : "+name,Toast.LENGTH_LONG).show();
}
}
@Override
protected void onPause() {
super.onPause();
Toast.makeText(getApplicationContext(),"onPause() 호출됨",Toast.LENGTH_SHORT).show();
//액티비티를 정지할 때, 정보를 저장하는 SharedPreferences
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("name","김철수");
editor.commit();
}
@Override
protected void onStop() {
super.onStop();
Toast.makeText(getApplicationContext(),"onStop() 호출됨",Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(getApplicationContext(),"onDestroy() 호출됨",Toast.LENGTH_SHORT).show();
}
}
#실행 영상
[참조]
https://www.boostcourse.org/mo316/lecture/259027?isDesc=false
안드로이드 앱 프로그래밍
부스트코스 무료 강의
www.boostcourse.org