티스토리 뷰
이제 까지 우리는 액티비티 생명주기를 알아 보았다. 이제 코드를 통해서 더욱더 심화된 예제를 살펴 볼것이다
onPause()와 onResume()이 가장 중요하다
중지시점, 복구시점 이므로 가장 중요하다
필요한 데이터를 저장할 수 있어야한다.
파일에 저장하거나, 데이터베이스에 저장해야되는데 너무 복잡한 과정을 거치게 되므로
이럴때, getSharedPreferences()를 사용한다.
getSharedPreferences() 간단하게 설정정보를 저장하는 메소드 이다
또는,
PreferenceManager를 통해서도 접근 가능하다.
getSharedPreferences()를 사용해보자
1. 저장할때와 복구할때 동일한 이름으로 사용해야 한다.
2. 속성을 보면 Activity.MODE_PRIVATE를 쓰면 된다. 보통 이걸 많이사용함.
<소스 분석>
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 package com.example.example_lifecycle;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Toast.makeText(this, "onCreate 호출 됨",Toast.LENGTH_LONG).show();// Activity가 Context 역할을 하기때문에 this로 놓아도 된다.Button button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {finish(); // 화면 닫기}});}@Overrideprotected void onResume() {super.onResume();Toast.makeText(this, "onResume 호출 됨",Toast.LENGTH_LONG).show();SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);if(pref != null){pref.getString("name",""); // name이 없으면 "" 를 달라String name = pref.getString("name","");Toast.makeText(this,"복구된 이름"+ name, Toast.LENGTH_LONG).show();}// 여기서 알수 있는것들 ->/* 화면이 중지 되는 시점-> Key , 소녀시대가 저장 된다 -> 그럼 다시 실행을 하면onResume()이 실행되는데, 복구된 이름이라고 뜨는지 확인을 해보자.*/}@Overrideprotected void onPause() {super.onPause();Toast.makeText(this, "onPause 호출 됨",Toast.LENGTH_LONG).show();// 저장할때와 복구할떄 동일한 이름으로 사용해야 한다.// 속성을 보면 보통 Activity.MODE_PRIVATE 를 쓴다//SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);// Activity.MODE_PRIVATE는 SharedPreferences객체 리턴// pref 으로 값을 저장 할 수 있다.SharedPreferences.Editor editor = pref.edit(); // edit()는 editer라는 객체가 나오게된다//editor라는 변수를 만들면 (해쉬 테이블과 비슷하다) put,get으로 빼준다editor.putString("name","소녀시대");editor.commit(); // commit()을 해주어야 값이 저장된다.// pref.edit() 메소드를 호출하면}@Overrideprotected void onStop() {super.onStop();Toast.makeText(this, "onStop 호출 됨",Toast.LENGTH_LONG).show();}@Overrideprotected void onDestroy() {super.onDestroy();Toast.makeText(this, "onDestroy 호출 됨",Toast.LENGTH_LONG).show();}@Overrideprotected void onStart() {super.onStart();Toast.makeText(this, "onStart 호출 됨",Toast.LENGTH_LONG).show();}}cs
최종적으로 우리가 확인할것들은
화면 닫기를 눌렀을경우
onPause()가 실행되면서 값들을 저장하게 될것이다. name , "소녀시대"의 값을 저장하게 될것
화면을 재시작 하였을 경우
onResume()가 시작 되면서 소녀시대의 값을 Toast메시지로 띄우게 된다.
실행 결과
'Android' 카테고리의 다른 글
[Android] 브로드캐스트 수신자 (1) | 2017.09.23 |
---|---|
[Android] 서비스(Service) (0) | 2017.09.22 |
[Android] 액티비티의 생명주기 (0) | 2017.09.22 |
[Android] 플래그의 활용 예제 (0) | 2017.09.21 |
[Android] 액티비티를 위한 플래그와 부가 데이터 (0) | 2017.09.21 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 학교
- programming
- 노드
- 텐서플로우
- TensorFlow
- 알고리즘
- 안드로이드
- 코드엔진
- Android
- 복습
- Spring
- 백준
- 스프링
- node.js
- MVC
- Algorigm
- 백준알고리즘
- BFS
- 개발하는 관광이
- 리버싱
- Controller
- db
- 초보자를 위한 C언어 300제
- 감자개발자
- C언어
- 감자코딩
- node
- 머신러닝
- 프로그래밍
- C langauge
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함