본문 바로가기

Android/Life-Cycle, SharedPreferences

Android Life Cycle Demo

안드로이드의 주요 라이프 사이클 메소드와 SharedPreferences 를 이용한 상태정보 저장 예

에뮬레이터에서 아래의 액티비티를 실행 중일 때 [HOME]버튼을 누르면 onPause(), onStop()이 실행되고 홈 화면이 나타난다. 그리고 다시 론처화면에서 현재 액티비티의 아이콘을 누르면 onResume()이 실행되고, 취소 버튼을 누르면 onPause(), onStop(), onDestroy()가 호출되는 것을 확인할 수 있다. 에뮬레이터에서 라이프 사이클 메소드를 테스트할 때 참고하세요.

res/layout/main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rootLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " /> </LinearLayout>


MainActivity.java

package com.example.androidapp; import android.os.Bundle; import android.app.Activity; import android.content.SharedPreferences; import android.util.Log; import android.widget.TextView; public class MainActivity extends Activity { TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView) findViewById(R.id.textView1); Log.i("onCreate", "onCreate실행됨"); } /* 잠시 중지될 때는 상태정보를 SharedPreferences에 저장한다*/ @Override protected void onPause() { super.onPause(); Log.i("onPause()", "onPause()실행됨"); SharedPreferences myPrefs = getSharedPreferences("Pref01", Activity.MODE_PRIVATE); SharedPreferences.Editor editor = myPrefs.edit(); editor.putString("userName", "홍길동"); editor.commit(); } /* 다시 실행될 때는 상태정보를 읽어와서 화면에 반영한다 */ @Override protected void onResume() { super.onResume(); Log.i("onResume()", "onResume()실행됨"); SharedPreferences myPrefs = getSharedPreferences("Pref01", Activity.MODE_PRIVATE); if(myPrefs!=null && myPrefs.contains("userName")) { String userName = myPrefs.getString("userName", ""); tv.setText(userName); } } @Override protected void onStop() { super.onStop(); Log.i("onStop()", "onStop()실행됨"); } /* 완전히 종료(제거)될 때는 상태정보가 삭제되도록 한다 */ @Override protected void onDestroy() { super.onDestroy(); Log.i("onDestroy()", "onDestroy()실행됨"); SharedPreferences myPrefs = getSharedPreferences("Pref01", Activity.MODE_PRIVATE); SharedPreferences.Editor editor = myPrefs.edit(); editor.clear(); editor.commit(); } }