태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

・엑티비티(Activity) [4]

간단한 어플리케이션을 제작하여 엑티비티를 이해하고 콜백메소드를 오버라이드 하여 엑티비티의 라이프 사이클을 함 알아보자

우선 어플리케이션을 만든다
어플리케이션 만드는 법은 본 카테고리에 안드로이드 첫걸음 - 처음이라면 역시 Hello World !! 글을 참조하자!!

귀찮으니까 전에 만들었던 HelloWorld 어플리를 이용하도록 하겠다


・HelloWorld.java
package com.helloApp;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class HelloWorld extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.v("onCreateExample", "onCreate Called!!");
        Toast.makeText(this, "onCreate호출!!", Toast.LENGTH_LONG).show();
        setContentView(R.layout.main);
       
    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        Log.v("onStartExample", "onStart Called!!");
        Toast.makeText(this, "onStart호출!!", Toast.LENGTH_LONG).show();
        super.onStart();
    }

    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        Log.v("onRestartExample", "onRestart Called!!");
        Toast.makeText(this, "onRestart호출!!", Toast.LENGTH_LONG).show();
        super.onRestart();
    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        Log.v("onResumeExample", "onResume Called!!");
        Toast.makeText(this, "onResume호출!!", Toast.LENGTH_LONG).show();
        super.onResume();
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        Log.v("onPauseExample", "onPause Called!!");
        Toast.makeText(this, "onPause호출!!", Toast.LENGTH_LONG).show();
        super.onPause();
    }
   
    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        Log.v("onStopExample", "onStop Called!!");
        Toast.makeText(this, "onStop호출!!", Toast.LENGTH_LONG).show();
        super.onStop();
    }
   
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        Log.v("onDestroyExample", "onDestroy Called!!");
        Toast.makeText(this, "onDestroy호출!!", Toast.LENGTH_LONG).show();
        super.onDestroy();
    }
   
}


main.xml은 변경사항이 없으므로 표시하지 않았다

안드로이드 첫걸음 - 처음이라면 역시 Hello World !! 글에서 main.xml을 사용하는 setContentView를 이용하는 코드에서
오버라이드 메소드 부분만 추가하였다

우선 이 소스에서 메소드 이외에 추가된 것은 바로

import android.util.Log;
import android.widget.Toast;

이 두가지 이다
우선 로그뷰부터 설명 나가보도록 하겠다

로그뷰란 이클립스에서 안드로이드 에뮬레이터를 실행했을때 로그를 볼수 있는 창이다
설정방법은 간단하다
「Window」→「Show View」 →「Other」 →「Android」→「Log Cat」순으로 선택하면
로그뷰가 추가된다

로그켓을 설정한 화면

이제 import 한 android.util.log 를 볼수있는 로그뷰를 설정하였다

소스코드에서 Log를 사용하여 이 로그뷰에서 그 문자열을 볼수 있다

이번 코드에서 만든 로그를 함 봐보자

Log.v("onCreateExample", "onCreate호출!!");

Log.v는 두가지 문자열 값을 가진다

Log.v(str1, str2)

str1 값은 화면의 보여주는 Tag 값
str2 값은 화면에 보여주는 Message값을 설정해준다

`Log클래스의 로그 출력라벨은 5가지가 있다
그 내용은 아래와 같은데 .... 아놔 또 표그려야돼??? 조낸 짱난다 진짜 이거 되게 힘드네 ㅆㅂ

 로그 라벨
로그 출력메소드
 설명
 ERROR  e 어플리케이션에 치명적인 에러가 발생한 경우에 이용되는 로그 라벨
 WARN  w  어플리케이션이 복구가능한 레벨의 에러가 발생한 경우에 이용되는 로그 라벨
 INFO  i  어플리케이션 동작정보를 출력하는 경우에 이용되는 로그 라벨
 DEBUG  d  디버그 정보를 출력하는 경우에 이용되는 로그 라벨
 VERBOSE  v  상세한 레벨의 정보를 출력하는 경우에 이용되는 로그 라벨

위 소스코드에서 코딩한 로그메세지는 라이프 사이클에 관련된 메소드가 호출될때 어떤 메소드가 호출되었는지를 표시하기 위해
로그를 구성하였다

이제 로그는 된것 같고 Toast에 대해서 함 디비보자
Toast는 토스트기에서 빵이 튀어나오듯이 메시지 창이 뿅 하고 튀어나오는 인스턴스 이다

import android.widget.Toast;

위와 같이 Toast도 하나의 위젯의 일종이다
사용법은 아주 간단간단!!! 아래와 같은 구조로 이루어져 있다

pubilc static Toast makeText(Context context, CharSequence text, int duration)

・Context : Toast가 표시될 Context를 나타낸다. 보통 지금 Toast를 보여주고 싶은 엑티비티를 기술한다
・Text : 화면에 뿌려질 문자열
・Duration : 화면에 표시될 시간을 결정한다 본인이 알기론 딱 2개 Toast.LENGTH_LONG과 Toast.LENGTH_SHORT 이다 (롱~,숏!)

Toast.makeText(this, "onCreate호출!!", Toast.LENGTH_LONG).show();

.show()는 이 Toast를 화면에 보여주는 역할을 한다

위와같은 Toast를 설정했다면 HelloWorld엑티비티에서 "onCreate호출!!" 이라는 메시지가 LONG하게...(대략 3초되나) 보여지게 된다
자 그럼 설명은 얼차저차 끝난것 같고 그럼 에뮬레이터를 함 돌리보자
HelloWorld 어플리가 실행되고 Log Cat을 보게되면 아래와같은 출력메시지를 확인할수 있다




음.... 캡쳐 화면은 여전히 알아보기 힘들다 .... 확실히 알아보는 법을 아시는분들 ... 좀 가르쳐 주십쇼 굽신굽신
아.... 프린트 스크린의 한계인가

잘은 안보이지만 로그켓이 찍힌 로그는 onCreate, onStart, onResume 메소드가 호출되었다는 메소드 이다
그럼 에뮬레이터에는



아따 크기도 하여라~~

위와같은 순서로 Toast의 메세지가 호출된다 이제 이 상태에서 에뮬레이터의 왼쪽 구석탱이의 녹색 통화버튼을 눌러서 어떤 메소드가 호출이 되는지 연속적으로 실험 후벼보겠다


로그켓을 보면 onPause메소드와 onStop메소드가 호출되었다는 로그를 확인 할수있다
그럼 화면을 통해 다시 함 살펴보자



통화버튼을 누르면 위와같이 onPause, onStop 메소드가 호출되며 위와같은 화면이 된다
이제 다시 그리운 HelloWorld화면으로 돌아가보자 돌아가기 위해선 버튼부분에 화살표 처럼생긴걸 누르면 된다
컴터에서 백스페이스 비슷한 넘이라고나 할까???

백스페이스 비슷한것을 누르게 되면
로그켓에서 onRestart, onStart, onResume 메소드가 호출된것을 확인할수 있다

위와 같은 화면을 볼수있다...
대충 좀 남았지만 우선 이것으로 엑티비티에 대해 마무리 지으려한다
샘플코드나 API를 참조하면서 자가 자신이 엑티비티란 무엇인지 확실한 개념을 잡아 나가는 노력이 필요할듯하다
뭐 본인은 멍청해서 이제서 이게 이런 개념이구나 ~ 라는게 겨우겨우 잡히기 시작했지만 아직도 한참 멀었다 ㅡ,.ㅡ;;;

혹시 필요하거나 누락된 부분이 발견된다면 (과연 발견될 것인가 ㅋㅋ) 추후에 다른글을 포스팅 하거나 추가 하도록 하고 ...
싶지만 될지는 잘 모르겠다 ㅡ,.ㅡ;;;; ㅋㅋㅋㅋㅋ

다음부터는 안드로이드 기본요소중 인텐트(Intent)에 대해서 알아볼까... 하는데 과연 언제가 될지는 잘 모르것당 ㅋㅋㅋ
저작자 표시 비영리 변경 금지
신고
Posted by 무현군


티스토리 툴바