안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 시작하는 초보입니다.
C나 기타 언어에서의 main에 해당하는 응용프로그램의 진입점은 어디인가에 대한 질문입니다.
안드로이드에서는 main에 해당하는 함수는 존재하지 않고 Activity의 onCreate에서 비슷한 역할을 한다는 정도는 알고 있습니다.
하지만 응용프로그램 안에 하나 이상의 Activity 가 있을때는 어떤 Activity 의 onCreate메서드가 먼저 시작되는지 알고 싶습니다.
이 게시판을 검색해봐도 이런질문이 없는것보면 초보적인 질문인것 같지만 답변 부탁드리겠습니다 ^^;
2010.01.11 18:22:09
항상 같이 사용하지는 않구요 ^^
이 값은 한 프로그램에 여러 activity 가 가지고 있을 수도 있답니다.
MAIN 이 붙은 것은 다른 곳에서도 바로 호출이 가능 하답니다.
android.intent.action.MAIN
이 값은 한 프로그램에 여러 activity 가 가지고 있을 수도 있답니다.
MAIN 이 붙은 것은 다른 곳에서도 바로 호출이 가능 하답니다.
2010.01.11 23:23:01
에구구.... 예전에 정리했던 것 중 잘못 정리된 것이 있었군요.
수정해놓았습니다 :( 볼레로님 말씀처럼 항상 붙어야 하는 것은 아니고 각각의 속성이 있습니다 :)
간단히 정리해보자면
ACTION_MAIN (android.intent.action.MAIN)은 어플리케이션의 시작점이 될 수 있느 액티비티임을 의미하고, CATEGORY_LAUNCHER(android.intent.category.LAUNCHER)는 해당 액티비티가 Application Launcher에 표시되도록 해주는 것입니다.
그런데 일반적으로 어플리케이션 런처를 통해 실행될 수 있는 액티비티는 해당 어플리케이션의 시작점이 되어야 하기에 위의 액션과 거의 한몸같이 붙어다니게 되는 것이죠~
1.
<
intent-filter
>
2.
<
action
android:name
=
"android.intent.action.MAIN"
/>
3.
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
4.
</
intent-filter
>
위의 필터는 액티비티가 Application Launcher (설치된 어플리케이션이 표시되는 목록)에 표시되고, 액티비티가 포함된 어플리케이션의 시작점이 될 수 있음을 의미합니다. 즉, 새로운 태스크의 시작점 (루트 액티비티)가 될 수 있다는 것이죠. 이 액션과 카테고리는 둘이 항상 붙어 있어야 제 기능을 발휘하므로 항상 같이 사용합니다.