Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

안드로이드(Android) Activity 의 라이프사이클(LifeCycle) 알아보기위한 예제

 

환경 : Eclipse Mars, Android 4.2.2

 

안드로이드에서는 activity 의 생명주기라는 것이 있습니다. 시작하고 종료할 때 어떤 함수들이 차례대로 실행되는지 순서가 있는데 각 순서별로 적절하게 기능을 구현하면 됩니다. 이번 예제는 그 순서를 파악할수 있는 소스 인데 onCreate() 가 시작되면서부터 어떤 함수 들이 차례대로 실행되는지, 종료시에는 어떤 함수들이 실행되는지 메시지로 알려줍니다.

 

안드로이드에서는 activity 의 생명주기라는 것이 있습니다. 시작하고 종료할 때 어떤 함수들이 차례대로 실행되는지 순서가 있는데 각 순서별로 적절하게 기능을 구현하면 됩니다. 이번 예제는 그 순서를 파악할수 있는 소스 인데 onCreate() 가 시작되면서부터 어떤 함수 들이 차례대로 실행되는지, 종료시에는 어떤 함수들이 실행되는지 메시지로 알려줍니다.

 

 

오버라이드한 함수는 onDestroy(),onPause(),onRestart(), onResume(),onStart(),onStop() 입니다. 그림에서 처럼 시작을 하게 되면 onCreate() -> onStart() -> onResume() 차례대로 시작되며 종료하게 되면 onPause() -> onStop() -> onDestory() 함수가 수행됩니다. 이 함수들을 알아야 하는 목적은 효율적인 프로그램을 짜기 위해 객체들을 어느 위치에서 해제하고 생성하며 관리할지 결정하기 위함입니다.

 

안드로이드(Android) Activity 의 라이프사이클(LifeCycle) 알아보기위한 예제

메인 activity 의 전체 소스 입니다. 특별한 부분이 없으며 레이아웃 xml 생략하도록 하겠습니다.

 

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

public class LifeCycleCheckActivity extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_life_cycle_check);

		Toast.makeText(this, "onCreate()", Toast.LENGTH_SHORT).show();
		
		Button btExit = (Button) findViewById(R.id.buttonexit);
		btExit.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				finish();
			}
		});
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		Toast.makeText(this, "onDestroy()", Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onPause() {
		super.onPause();
		Toast.makeText(this, "onPause()", Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onRestart() {
		super.onRestart();
		Toast.makeText(this, "onRestart()", Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onResume() {
		super.onResume();
		Toast.makeText(this, "onResume()", Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onStart() {
		super.onStart();
		Toast.makeText(this, "onStart()", Toast.LENGTH_SHORT).show();
	}

	@Override
	protected void onStop() {
		super.onStop();
		Toast.makeText(this, "onStop()", Toast.LENGTH_SHORT).show();
	}
}
반응형
Posted by 녹두장군1
,