인코딩의 Decoding

반응형

하나의 어플은 여러 개의 Activity들로 이루어져 있다. Back 버튼을 누르거나 다른 화면으로 이동할때 Activity가 전환 되면서 기존 Activity가 중지되고 새로운 Activity가 시작된다.

 

  • startActivity() : 새로운 Activity를 호출할 때 사용 / 새로운 Activity가 기존 Activity에 결과값을 전달할 필요 없을 때
  • startActivityForResult() : 새로운 Activity를 호출할 때 사용 / 새로운 Activity가 기존 Activity에 결과값을 전달할 때
  • Intent : Activity가 전환될 때 전달하는 객체로써 시작되는 Activity에 대한 정보를 전달한다.

1) startActivity()

 

현재 Activity에서 Intent를 정의하고 startActivity()를 호출하면 된다.

예시)) 현재 Activity에서 'Test' Activity를 호출

//Test Activity에 대한 Intent 정의
Intent intent = new Intent(this, Test.class);
//Intent를 통하여 Test Activity 호출
startActivity(intent);

 

2) startActivityForResult()

 

현재 Activity에서 startActivityForResult(Intent intent, int requestCode)를 통해 새로운 Activity 호출

두번째 파라메터 requestCode를 통해 새로운 Activity에 대한 여러 호출 중 해당 메서드를 구분

 

새로운 Activity가 종료되는 경우 onActivityResult(int requestCode,int resultCode, Intent data)를 통해 기존 Activity에 결과값(resultCode) 및 Intent 객체를 통해 data를 전달한다.

첫번째 파라메터인 requestCode와 맞는 startAcitivityForResult를 호출한 Activity에 결과값 전달

두번째 파라메터는 새로운 Activity 호출에 대한 결과값

세번째 파라메터는 새로운 Activity에서 기존 Activity에 전달할 데이터로 Intent객체 형태로 전달됨

 

3) Activity간 수명 주기 변화

 

- 새로운 Activity를 호출할때

기존 Activity : onPause()  / 새로운 Activity : onCreate() -> onStart() -> onResume()

- 새로운 Activity가 재개(RESUME) 되면서 기존 Activity가 정지(STOP)한다.

 

* 새로운 Activity가 생성되기 전에 기존 Activity가 완전히 정지(STOP)되지 않는다

* 새로운 Activity가 생성되는 과정에서 기존 Activity의 정보를 전달할 수 있다.

 

+

이전글 참고

 

Activity 개요 및 생명 주기

2020/01/22 - [안드로이드] - [Android] Activity의 개요 및 Activity의 생명 주기 소개

 

참고 - "핵심 개발자 주제 - 액티비티" , android 개발자 사이트

https://developer.android.com/guide/components/activities/activity-lifecycle.html

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band