Android activity 구동방식

JAVA/Android_Tip 2012.07.23 14:40
크리에이티브 커먼즈 라이선스
Creative Commons License

 

이번시간 포스팅은 안드로이드 구동방식에 대한 Activity 생명 주기를 알아보도록 하겠습니다.

 

 

대체적으로 알려져 있는 액티비티 라이프 사이클이죠? 하지만 개발자들 중에는 이걸 중시하고 프로그래밍을 하는 사람도 있지만

일부 안드로이드 프로그래머들은 이걸 별로 생각하지 않는 사람이 많습니다.

위에 개념도만 봐도 어떻게 움직이는지 잘 보이실 겁니다. 특히 게임 만드실려고 하시는 분들은

저 개념도를 유념히 봐주시길 바랍니다. 왜냐! 사용자가 홈키를 눌렀는데 데이터를 보존해야되는데 그부분이 조기~

 

onPause에서 처리를 해주어야 하는데 안해놓으면 다시 사용자가 돌아왔을 때 해당 게임의 상태가 저장 안되어 있어서

다시 처음부터 해야되는 불상사가 벌어질 수도 있습니다.

 

이렇게 말만하면 무슨 말인지 모르겠죠?

그래서 코드를 준비했습니다. 별로 어려운 코드는 아니구여

안드로이드 기초정도 하신분이라면 코드만 올려도 알아서 xml 구성하셔서 할꺼라고 믿습니다.

 

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

 

public class ActivityLifeCycle extends Activity {  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Log.d("첫 시작!", "onCreate()");
       
        Button finishButton = (Button) findViewById(R.id.finish); // 액티비티 종료 버튼 객체 받아오기.
        finishButton.setOnClickListener(new View.OnClickListener() {            //리스너 설정
            @Override
            public void onClick(View v) {
                finish(); //버튼 클릭시 액티비티 종료
            }
        });
    }
   
    @Override
    protected void onSaveInstanceState(Bundle outState) { //값 유지 매소드(매소드 이름만 봐도 대충 알겟죠?)
        super.onSaveInstanceState(outState);
       
        Log.d("Activity", "onSaveInstanceState()");
    }
   
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) { //값 복구 매소드.
        super.onRestoreInstanceState(savedInstanceState);
       
        Log.d("Activity", "onRestoreInstanceState()");
    }

    @Override
    protected void onDestroy() { //종료 매소드
        super.onDestroy();
        Log.d("Activity", "onDestroy()");
    }

    @Override
    protected void onPause() { //일시 정지 매소드
        super.onPause();
        Log.d("Activity", "onPause()");
    }

    @Override
    protected void onRestart() { //재시작 매소드
        super.onRestart();
        Log.d("Activity", "onRestart()");
    }

    @Override
    protected void onResume() { //재계(개?) 매소드
        super.onResume();
        Log.d("Activity", "onResume()");
    }

    @Override
    protected void onStart() { //시작 매소드
        super.onStart();
        Log.d("Activity", "onStart()");
    }

    @Override
    protected void onStop() { //멈춤 매소드.
        super.onStop();
        Log.d("Activity", "onStop()");
    }
}

자 이제 스샷으로 확인해 봅시다.

 

처음 시작했을 때 입니다. 순서대로 딱 3개가 구동 되죠?

저 같은 경우는 딱히 사용자의 데이터를 모아두는걸 만들어 본적이 없는 관계로 OnCreate에 정의하면 땡이었지만

나중에 다른걸 만들걸 대비해서 여러 테스트는 해보고 있습니다.

 

이번엔 홈키를 눌렀을 때 입니다. 상태를 저장하고 일시 멈춤 뒤에 멈춤을 호출하는게 보이네여

 

다시 그 앱을 눌렀을 때의 반응 입니다.

 

그리고 백키를 눌렀을 때.

액티비티가 하나밖에 없어서 그런지 바로 종료가 되는 군여

 

다시 실행해서 액티비티 종료 버튼을 눌렀을때의 반응입니다.

 

저렇게 도식화된 표보다는 이렇게 스샷으로 로그캣을 찍어보는것도 확실히 알 수 있는 좋은 방법이라 생각됩니다.

 

 

 

저작자 표시 비영리 변경 금지
신고

'JAVA > Android_Tip' 카테고리의 다른 글

Develop - Create a Project with Eclipse  (0) 2013.11.12
Design- Devices and Displays  (0) 2013.11.12
Android activity 구동방식  (0) 2012.07.23
Date클래스 이용 현재시간 구하기.  (0) 2012.07.16
Bitmap Canvas 스킬  (0) 2012.07.11
이미지 월 페이퍼 지정방법  (0) 2012.07.06


티스토리 툴바