Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 안드로이드
- 230503
- DOMContentLoaded
- ViewPager
- 데이터 타입
- 부가데이터
- DFS
- string
- ActionBar
- 함수 인자
- html
- C++
- Class
- Adapter
- serializable
- Flutter
- javascript
- 230510
- intent
- 230508
- classList
- null-safety
- textContent
- putextra
- 생명주기
- querySelector
- fragment
- parcelable
- 프래그먼트
- 인텐트
Archives
- Today
- Total
나만의 개발노트
[안드로이드] 수명주기/생명주기 (LifeCycle), getSharedPreferences() 본문
[안드로이드]/[안드로이드] 공부 기록
[안드로이드] 수명주기/생명주기 (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
'[안드로이드] > [안드로이드] 공부 기록' 카테고리의 다른 글
[안드로이드] 브로드캐스트 수신자, onReceiver, SMS메시지 수신 어플 (0) | 2023.11.10 |
---|---|
[안드로이드] 서비스, startService, onStartCommand (0) | 2023.10.13 |
[안드로이드] Serializable, Parcelable (0) | 2023.10.12 |
[안드로이드] 부가데이터(putExtra), 플래그(Flag) (1) | 2023.10.12 |
[안드로이드] 인텐트(intent) (1) | 2023.10.11 |