본문 바로가기
기타/DMZ

2011.09.20 Tacademy 안드로이드 2일차 메모

by ITPro 2011. 9. 20.


Text field 프로퍼티중 hint는 설명글을 표시할때 사용한다.

image view 프로퍼티중 src는 패딩이 적용되고 background는 패딩이 적용되지 않는다.

setContentView는 화면을 구성한다


액티비티를 생성하면 매니페스트 파일에 꼭 추가해주어야 한다

finish(); 액티비티 자기 자신을 종료하는 함수

이클립스에서 마우스 오른쪽 누르고 source > override/implements methods 추상 메소드 자동 생성
이클립스에서 마우스 오른쪽 누르고 source > Generate Getters and Setters.. GET SET 함수 자동 생성


모든 응용 프로그램을 발생시킬 수 있는것은 인텐트

익텐트 = 액션 + 데이터

forResult를 쓰면 결과값을 받을 수 있고 안 쓰면 못 받는다

인텐트의 액션은 문자열 상수로 이루어져있다.

웬만하면 "패키지명.intent.action.액션명" 같은 양식을 가지는 것을 권장함

 

인텐트 속성
카데고리 : 액션이 실행되는데 필요한 추가정보를 제공

타입 : MIME 타입을 명시적으로 지정

컴포넌트 : 클래스명의 원형 (풀네임)

부가 데이터 : uri

액션 - 카테고리 - MIME 데이터

DDMS로 VAD에 데이터를 삽입할 수 있다

액티비티 스택 = 안드로이드 테스크

인텐트 플래그를 설정하면 기본적으로 액티비티가 계속적으로 쌓이는것을 변경할 수 있다.


FLAG_ACTIVITY_SINGLE_TOP : 한 액티비티당 하나씩
FLAG_ACTIVITY_CLEAR_TOP : 태스크에 하나의 액티비티만 남김

액티비티 라이프사이클
실행 : 활성화
일시 중지 : 다이얼로그 창등이 띄어졌을때 후면에 희미하게 보이는 상태
중지 : 다른 액티비티에 의해 완전히 가려진 상태
*어플리케이션이 완전히 종료된 상황에서는 라이프사이클이 존재하지 않는다.


다른 어플리케이션에서 인텐트를 하기 위해서는 DEFAULT가 필터에 추가되어있어야한다.
OnPause에 반드시 저장해야하는 자료등을 저장한다. (웬만하면 실행됨)
OnStop은 실행되지 않을 가능성이 높다.


onsaveinstancestate 함수를 사용할때 get 함수에서 뒤쪽에 디폴트 값을 지정할 수 있다.
Bundle은 멤버 데이터의 일시 저장용으로 저장된다.(객체도 저장 가능)

SharedPreferences는 멤버 데이터의 영구 저장용으로 쓰인다. (객체 저장 불가능)

브로드캐스트 리시버
브로드캐스트 리시버는 매니페스트 파일에 등록하지 않고 사용할 수 있다.(소스에서 registerReceiver를 사용하면 된다)
보안상 문제가 되는 부분은 대부분 BR!!

FLAG_ACTIVITY_NEW_TASK 플래그는 새로운 액티비티를 띄우기 위하여 사용된다.
task를 생성하지 않으면 새로운 액티비티를 띄우기 위한 스택이 없기 때문에 꼭 사용하여야한다. (컴파일 오류 남)
배터리 관련한 브로트캐스트는 반드시 수신하여야한다.
매니페스트에서 추가할 경우 Receiver로 추가하면되며 Enabled는 true로 준다.
브로드캐스트 리시버가 받을 액션도 >인텐트 필터 > 액션을 추가하여 등록해 준다.
브로드캐스트 리시버는 액션이 올때마다 생성되었다가 처리가 끝나면 제거된다.

매니페스트 파일의 uses-permission에 등록을 하면 어플리케이션 설치시 필요 권한이 뜨게 되고 설치를 하게되면 권한이 적용된다.


브로드캐스트 리시버는 수동적으로 동작하나 서비스는 능동적으로 동작한다.

서비스는 어플리케이션 종료와는 무관하게 동작한다.
서비스는 중첩되지 않는다. (중첩 실행시켜도 에러는 띄우지 않는다)
서비스의 쓰레드는 oncreate에서 생성해야한다 (onstartcommand에서 생성하면 서비스를 실행하려고 시도할때마다 쓰레드가 추가된다)
서비스를 매니페스트 파일에 추가할 경우 Enabled는 true로 준다.

서비스는 이너클래스로 만들 수 없다.

매니페스트 파일은 어플리케이션의 전반적인 내용이 들어있다.

리소스 = 폴더 관리가 불가능
에셋 = 폴더 관리가 가능

리소스와 에셋은 소문자 영어와 숫자로 이루어져있다.

리소스 명에는 직접적인 색상명, 크기 등을 기입하지 않는것이 좋다.

스타일 값을 쓸때는 스타일 종류에 꼭 android:종류 방식으로 작성해야한다.

대체 리소스를 사용할 xml 파일명도 같아야한다.
대체 리소스를 사용할때는 내부 컴포넌트의 ID와 갯수가 같아야한다.

리소스 확장자가 다른경우 파일명을 다르게 해야한다 (test.jpg, test.gif) xxxxx


다이얼로그는 인스턴스를 새로 생성하는것이 불가능하기 때문에 빌드 함수를 호출해야한다.

 

반응형

바로가기