관리 메뉴

IT 쟁이

안드로이드 Activity 와 Intent 본문

Android

안드로이드 Activity 와 Intent

클라인STR 2011. 4. 10. 20:43

Activity (액티비티) 
 응용프로그램을 구성하는 4가지 컴포넌트 중 하나이다.. 직관적인 뜻으로 “하나의 화면”
 직접적으로 보이지 않으며 뷰를 배치하거나 생성하여 화면에 보여진다.
 모든 화면에 대해서 각각 새로운 Activity를 생성해야 된다.


레이아웃의 작성방법은 리소스를 이용하는 방법과 뷰를 이용하여 객체를 직접생성하는 방법이 있다.

(1) 리소스를 이용하는 방법
           public class ActivityTest extends Activity {
	protected void onCreate(Bundle savedInstanceState) {	
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
 	   }
	}
(2) 뷰를 이용하여 객체를 직접생성
            public class ActivityTest extends Activity {
               protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	TextView textView = new TextView(this);
	textView.setText("액티비티");
	setContentView(textView);
	   }	
         }
 인텐트
 - 애플리케이션 컴포넌트 즉 서로다른 액티비티 간의 호출, 데이터 전달을 위해 필요한 장치
 - 서비스,CP,BR 등의 컴포넌트들이 수행해야 할 작업에 대한 정보 가진다.
 - 인텐트는 세 가지 주요 정보인 액션(Action), 카테고리(Category) 그리고 데이터(Data)와 추가 엘리먼트로 구성 된다.

* 인텐트 엘리먼트와 그 내용 (상세설명은 다음에...(__*))




인텐트의 생성자 함수들

액티비티를 호출하는 메서드



* 명시적 인텐트

-호출하거나 데이터를 전달할 컴포넌트가 정확히 명시되어 있는 인텐트
- Intent(Context ctx, Class cls) 같은 형태로 사용한다.



명시적 인텐트의 사용 예)

	Intent intent = new Intent(CallActivity.this, SubActivity.class);	startActivity(intent);

 

CallActivity에서 SubActivity를 호출한다는 뜻이며, 이런식으로 인텐트에 호출할 대상 컴포넌트가 분명히 명시되어 있는것을 명시적 인텐트(Explicit intent)라고 한다.

* 암시적 인텐트

-호출 대상이 분명히 명확하게 정해지지 않은 인텐트
-다른 응용프로그램의 컴포넌트를 호출할 때 사용한다.
-호출시 어떤 컴포넌트가 인텐트를 수행할지에 대해서 플랫폼이 결정하며, 인텐트 레졸루션을

사용하여 적합성 여부를 판단한다.(Action, Data, Category )

-호출할 대상을 정확하게 찾을수 있도록 가급적이면 상세한 정보가 작성되어야 한다.



*액티비티 간의 통신
-인텐트를 이용하여 인수를 전달할 수 있다.
- Extras를 활용하여 key, value 정보를 원하는 개수만큼 전달할 수 있다.


[ Extras에 값을 저장하는 메서드 ]

[Extras에 저장된 값을 꺼내는 메서드]

[리턴값을 돌려주는 액티비티는 다음 메서드를 호출]

[호출된 액티비티가 종료되면서 다음 메서드를 재정의]
Comments